price-computed
v0.0.15-beta
Published
价格精度计算封装
Downloads
3
Readme
丢失原因
- 十进制转二进制,如果遇到小数是无限循环,超过 52 位,那么就会被舍入;
- 浮点数参与计算的时候需要对阶,以加法为例,要把小的指数域转化为大的指数域,也就是左移小指数浮点数的小数点,一旦小数点左移,必然会把 52 位有效域的最右边的位给挤出去,这个时候挤出去的部分也会发生“舍入”。这就又会发生一次精度丢失。
功能
- 将元转为分
- 将分转为元
- 将分转为万元
- 将金额转为带有逗号的格式
- 保留 N 位小数
使用
// 元转分
YcPrice.yuanToPenney(1); // 100
// 分转元
YcPrice.penneyToYuan(11230000000); // 112300000
// 分转元(带逗号)
YcPrice.penneyToYuan(11230000000, true); // 112,300,000
// 分转万元
YcPrice.penneyToThousand(11230000000); // 11230
// 分转万元(带逗号)
YcPrice.penneyToThousand(11230000000, true); // 11,230
// 保留一位小数,且不四舍五入
YcPrice.toFixed(2.54, 1); // 2.5
YcPrice.toFixed(2.56, 1); // 2.5