• js 的舍入误差


    0.1 + 0.2 = 0.30000000000000004; 浮点型数据

    理解:

         1.  0.1 0.2在计算机语言中会转换为二进制语言

             console.log(0.1.toString(2));  //   "0.0001100110011001100110011001100110011001100110011001101"

          console.log(0.2.toString(2));  //    "0.001100110011001100110011001100110011001100110011001101"

         2.  在计算 0.1 + 0.2 的时候会进行 二进制 =》十进制 的转换,此时会出现色入误差的情况,有一部分数据在精度上被丢失掉

              0.1 => 0.0001100110011001    0.2 => 0.0011001100110011001  就会出现不等于0.3 的情况

     解决:

        1.  console.log(parseFloat((0.1+0.2).toFixed(2)));    //  0.3

        2.  console.log(( 0.1*100 + 0.2*100 ) / 100);  // 0.3

        3.. Math.js   decimal.js   big.js  使用类库

  • 相关阅读:
    如何找回Oracle所有用户丢失的密码
    数据库范式详解
    lua
    cdn
    初心
    广州
    vim 命令
    git 命令
    Linux琐碎
    汪国真语录
  • 原文地址:https://www.cnblogs.com/PengZhao-Mr/p/14541437.html
Copyright © 2020-2023  润新知