我需要在Node中丢弃数字的小数部分,但我无法得到正确的结果!!
parseInt(2.3*100) == 229
在 C 中执行此操作很容易:
(int) (2.3f * 100) == 230
(int) (2.305f * 100) == 230
如何在 Node 中执行此操作?
注意:someFunction(2.305 * 100) 也应该等于 230!
Node 中的一些测试:
$ node
> 2.3*100 == 230
false
> parseInt(2.3*100)
229
> (2.3*100)|0
229
> (2.3*100).toFixed(0)
'230'
> (2.305*100).toFixed(0)
'231'
> Math.round(2.3*100)
230
> Math.round(2.305*100)
231
> Math.floor(2.3*100)
229
最佳答案
对此没有很好的解决方法。大多数十进制分数不能精确地表示为二进制分数。在这里阅读更多信息:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
从npm安装decimal:npm installdecimal
并按如下方式使用:
var Decimal = require('decimal');
parseInt(Decimal('2.3').mul('100').toNumber());
关于javascript - 如何在 Node/Javascript 中丢弃数字的小数部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35478041/