js中的圆数

时间:2017-10-06 17:19:22

标签: javascript

我想将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

感谢您的帮助

5 个答案:

答案 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);

我看到你已经尝试过这个,它应该有效。尝试再次运行或在受控环境中运行。