zoukankan      html  css  js  c++  java
  • JavaScript 中精度问题以及解决方案

    原文:https://www.runoob.com/w3cnote/js-precision-problem-and-solution.html

    JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示。其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E的取值范围是 [-1074, 971]。


    精度问题汇总

    想用有限的位来表示无穷的数字,显然是不可能的,因此会出现一些列精度问题:

    • 浮点数精度问题,比如 0.1 + 0.2 !== 0.3
    • 大数精度问题,比如 9999 9999 9999 9999 == 1000 0000 0000 0000 1
    • toFixed 四舍五入结果不准确,比如 1.335.toFixed(2) == 1.33

    浮点数精度和 toFixed 其实属于同一类问题,都是由于浮点数无法精确表示引起的,如下:

    (1.335).toPrecision(20);    // "1.3349999999999999645"

    而关于大数精度问题,我们可以先看下面这个代码片段:

  • 相关阅读:
    [国家集训队] Crash 的文明世界
    [国家集训队] middle
    [正睿集训2021] 构造专练
    [正睿集训2021] LIS
    CF482E ELCA
    UVA
    UVA
    UVA
    UVA
    UVA
  • 原文地址:https://www.cnblogs.com/liujinyu/p/14703872.html
Copyright © 2011-2022 走看看