A Javascript library for encoding numbers to any base with various formatting options.
- Encode and decode to and from any radix/base.
- Use specified symbols (digits, sign, radix character, padding, separators) to represent the encoded number.
- Adjust integer and fractions lengths.
- Adding "thousands" grouping separators, grouping at adjustable lengths.
- A choice of various rounding modes.
- Scientific and engineering notation.
- Alternatively output as a numeral object, to represent numbers in bases without the use of digit symbols.
- Encoding of decimal.js values for more precision.
- The API reference can be found here.
BaseFormatter- Makes use of specified symbols and formatting options to represent the numbers.BaseConverter- Alternatively represents numbers as numberal objects.
Installing the NPM package:
- Yarn
yarn add base-formatter - NPM
npm install base-formatter
- ES module
import{BaseFormatter,BaseConverter}from'base-formatter'// For just the BaseFormatter, simply:importBaseFormatterfrom'base-formatter'
- CommonJS
const{ BaseFormatter, BaseConverter }=require('base-formatter')
constbase16Greek=newBaseFormatter('0123456789ΑΒΓΔΕΖ',{radixCharacter: ','})// or for just the A-F characters, BaseFormatter.hexadecimal({...})constdozenal=BaseFormatter.dozenal()dozenal.encode(142)// '↋↊'dozenal.encode(144)// '100'dozenal.encode(1/3,{minimumIntegerDigits: 3,minimumFractionDigits: 3})// '000;400'dozenal.encode(1.6,{roundingMode: 'ceil',fractionDigits: 0})// '2'dozenal.encode(-1.6,{roundingMode: 'floor',fractionDigits: 0})// '-2'base16Greek.encode(13)// 'Δ'base16Greek.encode(5e-6,{notation: 'scientific',maximumFractionDigits: 3})// '1,Β1e-5'dozenal.decode('↊;9429e↊')// 667430129664dozenal.isNumber('↊;9429e↊')// true// Making use of numeral outputs:constbase120=newBaseConverter(120)base120.encode(-1440)// { isNegative: true, integer: [ 12, 0 ], fraction: [], exponent: 0 }base120.encode(6347544.3456,{notation: 'scientific',maximumFractionDigits: 5})// { isNegative: false, integer: [ 3 ], fraction: [ 80, 96, 24, 41, 57 ], exponent: 3 }base120.decode({isNegative: false,integer: [3],fraction: [80,96,24,41,57],exponent: 3})// 6347544.345625