JavaScript学习(六十四)—关于JS的浮点数计算精度问题解决方案

您的语言没有中断,它正在执行浮点数学运算。计算机只能本地存储整数,因此它们需要某种表示十进制数字的方式。此表示并不完全准确。这就是为什么(通常不是)的原因 0.1 + 0.2 != 0.3。

为什么会这样呢?

  • 实际上,这很有趣。当您有一个以10为底的系统(如我们的系统)时,它只能表达使用该底数的质数的分数。10的素数是2和5。因此,由于分母都使用10的素数,所以1 / 2、1 / 4、1 / 5、1 / 8和1/10都可以清楚地表示。 / 3、1 / 6、1 /
    7和1/9都是重复的小数,因为它们的分母使用3或7的质数。
  • 在二进制(或以2为基数)中,唯一的质数是2,因此您只能清楚地表达分母只有2作为质数的分数。以二进制形式,1 / 2、1 / 4、1 /8都将干净地表示为小数,而1/5或1/10将重复小数。
  • 因此,在以10为基数的系统中,干净的小数点为0.1和0.2(1/10和1/5),是在计算机使用的以2为基数的系统中重复小数点。当您对这些重复的小数进行数学运算时,最终会剩下剩余的钱,这些剩余笔钱会在您将计算机的以2为底的(二进制)数字转换为更易于理解的以10为底的表示形式时保留下来…

以下是使用.1 + .2多种语言发送到标准输出的一些示例。

JavaScript学习(六十四)—关于JS的浮点数计算精度问题解决方案相关推荐

  1. JavaScript学习(十四)—元素节点关系和特殊节点

    JavaScript学习(十四)-元素节点关系和特殊节点 一.元素节点 (1).parentElement: 获取某元素的父元素,它和parentNode的区别是parentElement获取到的值时 ...

  2. 金融学习之十四——使用Tushare获取数据计算投资组合的预期收益率和波动率

    为了降低风险,投资者在购买股票时往往会构建一个投资组合,以对冲风险和最大获益.在投资组合中,描述该投资组合效果的两个重要变量是预期收益率及其波动率. 1.投资组合的预期收益率 预期收益率的计算公式为: ...

  3. JavaScript学习(十六)—实现购物车加减数量,计算总金额

    JavaScript学习(十六)-实现购物车加减数量,计算总金额 代码如下: <table border="2" cellspacing="0" soli ...

  4. JavaScript高级程序设计第四版学习--第二十四章

    title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...

  5. 【Vue2.0学习】—插槽(六十四)

    [Vue2.0学习]-插槽(六十四) 作用:让父组件可以向子组件指定的位置插入html结构,也是一种组件间通信的方式,适用于 父组件=>子组件 分类:默认插槽.具名插槽.作用域插槽 默认插槽 使 ...

  6. 深度学习入门(六十四)循环神经网络——编码器-解码器架构

    深度学习入门(六十四)循环神经网络--编码器-解码器架构 前言 循环神经网络--编码器-解码器架构 课件 重新考察CNN 重新考察RNN 编码器-解码器架构 总结 教材 1 编码器 2 解码器 3 合 ...

  7. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

  8. 花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)

    目录 0. 前言 1. LeNet-5 2. AlexNet 3. VGG-16 4. ResNet 残差网络 5. Inception Network 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  9. Java基础学习——第十四章 网络编程

    Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...

最新文章

  1. C# 回发或回调参数无效
  2. 编写一个函数进行左移或右移的位运算
  3. Makefile常用信息查询页
  4. mysql锁机制总结
  5. java怎么判断数据类型_数据类型判断
  6. 计算机窗口设计java实验,Java银行取款异常处理计算器设计图形用户界面设计实验报告.doc...
  7. 中国风冬日节日必备梅花PNG免扣素材
  8. 某医院信息化硬件平台建设方案
  9. python编译成汇编语言_查看C语言/C++编译器生成的汇编语言代码
  10. [渝粤教育] 西南科技大学 操作系统 在线考试复习资料
  11. jQuery中的事件绑定的几种方式
  12. 周剑:国产商业智能 BI 这 20 年(1997~2017)
  13. gradle 配置及设置本地仓库
  14. excel离散度图表怎么算_怎么在excel中计算散点图的公式
  15. 计算机基础相关知识面试题
  16. 基于QT的音乐播放器
  17. ads软件是什么?有什么用?怎么用?
  18. c编程语言学习软件,用什么软件学习c语言
  19. 计算机桌面的任务栏,屏幕任务栏消失怎么办_电脑屏幕上任务栏不见了的解决方法...
  20. 读书笔记--一个人的朝圣

热门文章

  1. Oracle管理文件OMF (oracle managed files)
  2. chrome fiddler 重定向 https 请求
  3. Algorithms-Part1最后一周的作业——KdTree
  4. spring原理学习
  5. 防止数据中心停机需要采取什么措施
  6. 《交互式程序设计 第2版》一2.2 代码的本质
  7. eclipse 矩阵删除行列,也可以矩阵形式编辑
  8. 面向模式的分析和设计(POAD)
  9. step7设置pcpg_STEP7 PC/PG设置的疑惑
  10. 颜色空间直方图matlab,使用Matlab绘制图像的rgb颜色空间和Lab颜色空间分量图和分量直方图 | 学步园...