我有类似3.2
和的浮点数1.6
。
我需要将数字分成整数和小数部分。例如,将的值3.2
拆分为两个数字,即3
和0.2
获取整数部分很容易:
n = Math.floor(n);
但是我在获取小数部分时遇到了麻烦。我已经试过了:
remainder = n % 2; //obtem a parte decimal do rating
但是它并不总是能正常工作。
先前的代码具有以下输出:
n = 3.1 // gives remainder = 1.1
我在这里想念的是什么?
使用1
,而不是2
。
js> 2.3 % 1
0.2999999999999998
在0.2999999999999998等于0.3的世界中,这可能是可以接受的。对我而言,不是...因此,为了解决这一难题,我将避免使用
Math.*
或%
操作。为了避免出现浮点舍入问题,
toFixed
在某些情况下使用可能会有所帮助,例如(2.3 % 1).toFixed(4)
=="0.3000"
。(2.3 % 1).toFixed(4).substring(2)
="3000"
如果您需要它而没有0.
在当今世界,数字
2.3
出现了,而不是2
或3
,数量0.2999999999999998
是多么不顾侮辱它看起来对人眼完全可以接受的。@GershomMaes在许多情况下,该数字是不可接受的。