我想将45.19202405202648
舍入到小数点后3位。
我试过了:
n.toFixed(3);
也https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
Math.round10(n, -3);
myNamespace.round(n, 3);
和
Math.round(n * 1000 + Number.EPSILON ) / 1000;
但这些解决方案会返回45.19199999999999
45.192
内容
编辑:真正的问题是我是65.19202405202648.toFixed(3) - 20
我得45.19199999999999
感谢您的帮助
答案 0 :(得分:1)
你的Arithmetical协处理器有问题。尝试使用其他计算机。
答案 1 :(得分:0)
x-要四舍五入的数字; n-小数位数;
function roundPlus(x, n) {
if (isNaN(x) || isNaN(n)) return false;
var m = Math.pow(10, n);
return Math.round(x * m) / m;
};
答案 2 :(得分:-1)
试试这个:
let num = 45.19202405202648;
console.log(num.toFixed(3));
答案 3 :(得分:-1)
所以听起来你在这里有两件事情。首先是舍入部分,它似乎按预期工作。第二个问题只是浮点数并不总能很好地映射到易读的字符串。因此,要将其转换为漂亮的字符串,您可以使用:
var roundedNum = Math.round(num * 1000) / 1000;
var displayString = roundedNum.toFixed(3)
您需要进行回合并使用.toFixed
来获得预期结果。
答案 4 :(得分:-2)
javascript中有一个名为toFixed()的函数。这将返回一个具有固定小数位数的数字。这将在90%的时间内完成,但有时它并不完美。没有外部库,没有办法完美地完成。例如,你会这样做:
n.toFixed(3);
我看到你已经尝试过这个,它应该有效。尝试再次运行或在受控环境中运行。