我在javascript中使用这3个函数,直到我注意到它们都给出了不正确的舍入值.让我们说下面的事件
var x = 1.49849;
Math.round(x) //return 1, but from what I learnt from school it should be 2, right?
x.toFixed() //return 1 too! same as rounding
x.toFixed(3) //return 1.498, shouldn't it be 1.499?
x.toFixed(4) //return 1.4985, at least this is working correctly....
Run Code Online (Sandbox Code Playgroud)
我试过toPrecision()它与toFixed()基本相同.
看起来javascript中的舍入只考虑一个数字,并忽略小数点的其余部分.
这种类型的Senario有没有javascript工作?
我知道我总是可以在服务器端这样做,但我们只关注javascript.
Pio*_*ski 10
不,你错了.
1.49849四舍五入到最接近的整数是1,因为小数点后面的第一个数字是4,小于5.
1.49849小数点后四舍五入为1.498,因为第4位为4.
只有当您舍入的第一个数字为5或更高时,它才会被四舍五入.在一些金融四舍五入系统中,精确的一半被四舍五入到最接近的偶数,因此2.5轮到2轮,但是3.5轮到4轮.
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |