阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Javascript 为什么 0.1 + 0.2 != 0.3 如何解决这个问题?

      问题

      Javascript 为什么 0.1 + 0.2 != 0.3 如何解决这个问题?

      答案

      因为 JS 采⽤ IEEE 754 双精度版本( 64 位),并且只要采⽤ IEEE 754 的语⾔都有该问题

      我们都知道计算机是通过⼆进制来存储东⻄的,那么 0.1 在⼆进制中会表示 为

      // (0011) 表示循环
      0.1 = 2^-4 * 1.10011(0011)
      

      我们可以发现, 0.1 在⼆进制中是⽆限循环的⼀些数字,其实不只是 0.1 ,其实很多⼗进制⼩数⽤⼆进制表示都是⽆限循环的。这样其实没什么 问题,但是 JS 采⽤的浮点数标准却会裁剪掉我们的数字。

      解决1

      parseFloat((0.1 + 0.2).toFixed(10)) === 0.3 // true
      

      解决2

      bignumber 库

      解决3 bigint类型

      更多面试题

      如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。

      面试题
      HTMLCSSJavaScript
      jQueryVue.jsReact
      算法HTTPBabel
      BootStrapElectronGulp
      Node.js前端经验相关前端综合
      Webpack微信小程序-

      这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!

      目录
      目录