4

我在 Javascript 中执行以下操作:

0.0030 / 0.031

如何将结果四舍五入到任意数量的位置?vara将持有的最大数量是多少?

4

3 回答 3

16

现代浏览器应该支持一种名为toFixed(). 下面是一个取自网络的例子

// Example: toFixed(2) when the number has no decimal places
// It will add trailing zeros
var num = 10;
var result = num.toFixed(2); // result will equal 10.00

// Example: toFixed(3) when the number has decimal places
// It will round to the thousandths place
num = 930.9805;
result = num.toFixed(3); // result will equal 930.981

toPrecision()也可能对您有用,该页面上还有另一个很好的示例。


对于较旧的浏览器,您可以使用Math.round. Math.round()将四舍五入到最接近的整数。为了达到小数精度,您需要稍微操作一下您的数字:

  1. 将原始数字乘以 10^x(10 的 x 次方),其中 x 是您想要的小数位数。
    • 应用 Math.round()
    • 除以 10^x

因此,要将 5.11111111 舍入到小数点后三位,您可以这样做:

var result=Math.round(5.111111*1000)/1000  //returns 5.111
于 2009-09-02T23:04:58.707 回答
2

数字类型的最大正有限值约为1.7976931348623157 * 10 308。ECMAScript-262 第 3 版。还定义了Number.MAX_VALUE哪个持有该值。

于 2009-09-03T04:20:03.733 回答
1

回答 Jag 的问题:

  1. 使用 toFixed() 方法。谨防; 它返回一个字符串,而不是一个数字。
  2. 十五,也许十六。如果您尝试获得更多,多余的数字将是零或垃圾。尝试格式化 1/3 之类的东西,看看我的意思。
于 2009-09-05T04:27:45.140 回答