zoukankan      html  css  js  c++  java
  • JS处理数据四舍五入(tofixed与round的区别详解)

    1 、tofixed方法

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。具体规则如下:

    简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

    显然这种规则不符合我们平常在数据中处理的方式。为了解决这样的问题,可以自定义去使用Math.round方法进行自定义式 的实现指定保留多少位数据进行处理。

    定义和用法

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

    语法
    NumberObject.toFixed(num)

    参数描述
    num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

    返回值

    返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

    抛出

    当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。

    当调用该方法的对象不是 Number 时抛出 TypeError 异常。

    实例

    在本例中,我们将把数字舍入为仅有一位小数的数字:

    Show the number 13.37 with one decimal:

    1
    2
    3
    4
    <script type="text/javascript">
    var num = new Number(13.37);
    document.write (num.toFixed(1))
    </script>

    输出:

    13.4

    2 、round方法

    round() 方法可把一个数字舍入为最接近的整数。例如:Math.round(x),则是将x取其最接近的整数。其取舍的方法使用的是四舍五入中的方法,符合数学中取舍的规则。对于小数的处理没有那么便捷,但是可以根据不同的要求,进行自定义的处理。

    例如:对于X进行保留两位小数的处理,则可以使用Math.round(X * 100) / 100.进行处理。

    定义和用法

    round() 方法可把一个数字舍入为最接近的整数。

    语法
    Math.round(x)
    参数 描述
    x 必需。必须是数字。
    返回值
    与 x 最接近的整数。

    说明
    对于 0.5,该方法将进行上舍入。

    例如,3.5 将舍入为 4,而 -3.5 将舍入为 -3。

    实例
    把不同的数舍入为最接近的整数:

    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    document.write(Math.round(0.60) + "<br />")
    document.write(Math.round(0.50) + "<br />")
    document.write(Math.round(0.49) + "<br />")
    document.write(Math.round(-4.40) + "<br />")
    document.write(Math.round(-4.60))
    </script>

    输出:

    1
    1
    0
    -4
    -5

  • 相关阅读:
    PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)
    PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)
    PAT (Advanced Level) Practice 1028 List Sorting (25 分) (自定义排序)
    PAT (Advanced Level) Practice 1035 Password (20 分)
    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)
    PAT (Advanced Level) Practice 1120 Friend Numbers (20 分) (set)
    从零开始吧
    Python GUI编程(TKinter)(简易计算器)
    PAT 基础编程题目集 6-7 统计某类完全平方数 (20 分)
    PAT (Advanced Level) Practice 1152 Google Recruitment (20 分)
  • 原文地址:https://www.cnblogs.com/niuben/p/12378636.html
Copyright © 2011-2022 走看看