【发布时间】:2019-11-14 04:28:15
【问题描述】:
我知道javascript中的toFixed()方法将数字转换为字符串,保持指定的小数位数,就像下面的代码一样,设置后面的位数小数点为 2 .
我的问题是:数字是否在必要时四舍五入。在下面的代码中,我将转换数字:0.075。我认为四舍五入 0.075 应该是 0.08 作为“5 上升”。但是,在下面的第一种情况下,它看起来很奇怪。所以我很困惑。
var a=0.25*0.3;
var res1 = a.toFixed(2);
console.log(res1);
//Output: a is 0.07 (Is there something wrong?)
var b=0.025*3;
var res2= b.toFixed(2);
console.log(res2);
//Output:b is 0.08
我知道这个问题可以通过使用 Math.js 来解决。但是,我只是想知道问题的原因?是toFixed()方法的问题还是javascript中的数据类型的问题。
【问题讨论】:
-
是的,第二个。试试
.toFixed(22),你就会明白为什么 -
无法复制。
-
我假设第二个代码块应该有
var b=0.025*3; -
这对我来说看起来很奇怪 - 为什么
b.toFixed(2)应该返回0.08而b = 0.0075? -
b.toFixed(2);是 0.08???呵呵,我没看到.0075会是.01
标签: javascript decimal rounding