javascript - 如何在 Node/Javascript 中丢弃数字的小数部分

标签 javascript node.js

我需要在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/

相关文章:

node.js - Nodejs 工作线程可以用于执行长时间运行的基于文件 I/O 的 JavaScript 代码吗?

html - Nodejs + 人力车 : src= reference not working

javascript - 使用 Bootstrap 的淡入面板

javascript - 将 JSON 字符串解析为对象后,如何访问这些属性?

Javascript Boolean.prototype.toString() 意外结果

javascript - 如何替换textarea中的文字?

javascript - 为什么我不能改变溢出父图像的宽度,而我可以改变高度?

node.js - 最小 Websocket Nodejs 尾部示例

javascript - 如何在 Express.js 中定义各个页面

jquery - 无法使用 node.js 安装 jquery - 无法加载 Contextify