Мне нужно отбросить дробную часть числа в узле, но я не могу получить правильный результат!Как отбросить дробную часть числа в узле/Javascript
parseInt(2.3*100) == 229
Это легко сделать это в C:
(int) (2.3f * 100) == 230
(int) (2.305f * 100) == 230
Как я могу это сделать в узле?
обратите внимание: некоторые функции (2.305 * 100) должны быть равны 230!
Некоторые испытания в узле:
$ 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
вы должны использовать некоторые BigDecimal для JavaScript (https://github.com/dtrebbien/BigDecimal.js) https: //www.npmjs.com/package/decimal – user1121883
Math.floor() должен делать то, что вы ищете. – icke
Добро пожаловать в неустойчивый мир арифметики с плавающей запятой. Вопреки тому, что вы заявляете, все результаты верны, а не то, что вы ожидаете. Прочтите http://floating-point-gui.de/ для получения дополнительной информации. – Darkhogg