固定十进制
代表固定精度小数的数据结构.
说明
FixedDecimal 是一种数据结构,用于表示固定精度小数.
它特别有助于代表货币,特别是密码货币,作为基础 bigint 可以在保持精确性的同时处理大量和极其分数,所配置的小数位数允许类在基础值上方便地操作,并以方便用户的方式表示.
与 BigDecimal 其他地方的解决办法, FixedDecimal 并不是要坚持和进行算术操作,而是为了实现正常化和格式化。 几乎所有的方法都是可连锁的,以方便初始化 FixedDecimal,操作它,然后立即取回字符串或 bigint 代表权.
事实上, 你可能不需要初始化一个 FixedDecimal 直接说. 取而代之的是,使用能确保输入的辅助货币构建器会被强制达到十进制的适当数量.
安装
npm install @audius/fixed-decimal
使用量
new FixedDecimal('12.345').toString() // '12.345'
new FixedDecimal(12.345).toString() // '12.345'
new FixedDecimal(BigInt(12345), 3).toString() // '12.345'
new FixedDecimal('12.345', 6).toString() // '12.345000'
new FixedDecimal(12.345, 6).toString() // '12.345000'
new FixedDecimal(BigInt(12345), 6).toString() // '0.012345'
new FixedDecimal(12345.6789).toLocaleString('en-US', {
maximumFractionDigits: 2
}) // 12,345.67
new FixedDecimal(12345.6789).toLocaleString('en-US', {
maximumFractionDigits: 2,
roundingMode: 'halfExpand'
}) // 12,345.68
创建货币
例如,如果您想要在代码中使用十八小数 ETH,您可以创建一个帮助器,比如:
const ETH = (value) => new FixedDecimal(value, 18)
// Calling .value will get the wei amount
console.log(ETH('1.42')).value // 1420000000000000000n
// Can also go from wei to UI string
console.log(
ETH(12345678901234567890n).toLocaleString('en-US', {
maximumFractionDigits: 2
})
) // 12.34
在《联合来文》和测试中可找到更多实例和文件.
实例
见 ./实例 此软件包使用示例的文件夹.
运行
npx tsx examples/audio.ts