可能重复:
limit the decimal place in javascript is not working for 4.45678765e-6
这并没有给出我在科学日历上得到的答案。
var myNum = Math.floor (4.45678765 * 10000)/10000;
document.write (x);
如果值具有指数,是否可以限制小数位?
答案 0 :(得分:8)
4.45678765e-6
表示4.45678765 * 10^(-6)
或0.00000445678765
,所以
4.45678765e-6 * 10000 == 0.0445678765
Math.round(0.0445678765) == 0
答案 1 :(得分:1)
4.45678765e-6 * 10000仍小于1(实际上是4.45678765e-2),因此调用round或floor会使其为0,将0除以10000仍为0.在这种情况下,您需要乘以除以10 ^ 10得到正确答案,但这不是一般解决方案。一种方法是(伪代码):
counter = 0
while x < 100000:
x = x * 10
counter = counter + 1
x = Math.floor(x / 10)
x = x / (10 ^ (counter - 1))
答案 2 :(得分:1)
Javascript具有toPrecision
功能,允许您指定有效数字而不是小数位。
var x = 4.45678765e-6;
console.log(x.toPrecision(4)); // 0.000004457
console.log(x.toFixed(4)); // 0.0000