我应该如何避免javascript中的十进制舍入 假设我输入了
input : 99999999999.999999
Expected output : 99999999999.999999
但是我得到了像
这样的输出 100000000000
这里,内部javascript舍入小数位。 请让我知道如何避免这个javascript舍入???。
例如:
var test = 99999999999.999999;
console.log(test); //This will print 100000000000 instead
答案 0 :(得分:3)
正如@Aliendroid建议的那样,您可以使用BigDecimal.js库。在我看来,这是在JavaScript中处理double和float的最佳方法
要更具体地回答您的问题,您实际上可以这样做:
var test_number = new BigDecimal('99999999999.999999');
console.log(test_number.setScale(6).toString());
和你原来的问题:
请让我知道如何避免这个javascript舍入???
嗯,你不能因为JavaScript中没有双号,只有浮点数。例如,如果您执行以下操作:
console.log(99999999999.99); //This is a float number
这实际上会输出:99999999999.99
答案 1 :(得分:1)
它不是圆形
是浮点错误
在编程中学习浮点数!
如果需要使用字符串和一些大数字库
参考: