Javascript中除法结果的四舍五入

Javascript中除法结果的四舍五入,javascript,rounding,Javascript,Rounding,我正在用Javascript执行以下操作: 0.0030/0.031 如何将结果四舍五入到任意数量的位置?var所能容纳的最大数量是多少?现代浏览器应该支持名为toFixed()的方法。这是: toPrecision()可能对您也很有用,该页面上还有另一个很好的示例 对于较旧的浏览器,可以使用Math.round手动实现Math.round()将舍入到最接近的整数。为了达到十进制精度,您需要稍微操纵一下数字: 将原始数字乘以10^x (10乘以x的幂),其中x为 您输入的小数位数 希望 应用

我正在用Javascript执行以下操作:

0.0030/0.031


如何将结果四舍五入到任意数量的位置?
var
所能容纳的最大数量是多少?

现代浏览器应该支持名为
toFixed()
的方法。这是:

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


对于较旧的浏览器,可以使用
Math.round
手动实现
Math.round()
将舍入到最接近的整数。为了达到十进制精度,您需要稍微操纵一下数字:

  • 将原始数字乘以10^x (10乘以x的幂),其中x为 您输入的小数位数 希望
    • 应用Math.round()
    • 除以10^x
  • 因此,要将5.11111111四舍五入到小数点后三位,您可以这样做:

    var result=Math.round(5.111111*1000)/1000  //returns 5.111
    

    数字类型的最大正有限值约为1.7976931348623157*10308。ECMAScript-262第三版。还定义了保存该值的
    Number.MAX\u值。

    回答Jag的问题:

  • 使用toFixed()方法。当心;它返回一个字符串,而不是数字
  • 十五,也许十六。如果您试图获取更多,那么额外的数字将是零或垃圾。尝试设置1/3之类的格式,看看我的意思

  • 在大多数键盘上,e更接近w,而不是o到n。这现在是一个有效的问题。别忘了JScript的
    toFixed
    实现相当不足-
    var result=Math.round(5.111111*1000)/1000  //returns 5.111