JavaScript表示不背小数计算存在误差的锅

2023-11-11

浮点数的最高精度是17位小数,但是在实际计算时会产生莫名其妙的问题,如0.1+0.2的结果不是0.3,而是0.30000000000000004,这个舍入误差会导致无法测试特定的浮点数值。
例如

var a=0.1,b=0.2;
if(a+b==0.3){
	//这里的语句永远不会被执行到,因为a+b的结果是:0.30000000000000004
}

关于浮点数值计算会产生舍入误差的问题,需要说明,这是使用基于IEEE745数值的浮点计算的通病,并不是只有JavaScript如此,其他使用相同数值格式的语言也存在这个问题。
在Java中也会出现类似的问题,如下面的java代码其结果也并不是0.3:

double a = 0.1f;
double b = 0.2f;
double c = a+b;
System.out.println("c = " + c);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript表示不背小数计算存在误差的锅 的相关文章

  • 【地理空间】轨迹相似度算法(DTW、LCSS)

    序列相似度 在现实生活中我们常常需要比较两串数字的相似度 比如两串数字 一维 再比如两条轨迹 二维 那么如何计算两个序列的相似度呢 有人提出了DTW算法 一种计算序列距离的方法 DTW算法原理 算法原理主要参考 https blog csd
  • Databend 设计概述

    Databend 是一个开源的 完全面向云架构的新式数仓 它提供快速的弹性扩展能力 并结合云的弹性 简单性和低成本 使 Data Cloud 构建变得更加容易 Databend 把数据存储在像 AWS S3 Azure Blob 这些云上的
  • JDBC连接数据库的几种方法与简单解析

    首先要知道jdbc 使用Java代码发送sql语句的技术就是jdbc技术 即jdbc是一个接口 用于不同的数据库 oracle mysql sqlserver 的操作 使用jdbc发送sql语句的前提 登录数据库服务器 连接数据库服务器 数
  • windows杀死进程命令

    有时候由于病毒或其他原因 启动了一系列的进程 并且有时杀了这个 又多了那个 这时候我们可以特定选择一种杀 很多人对windows杀死进程命令比较感兴趣 所以今天小编就为大家来详细讲一讲windows命令行关闭进程教程 感兴趣的用户一起来看看
  • LNK2001无法解析的外部符号 _vfprintf

    legacy stdio definitions lib
  • 感动了千千万万人们的西单女孩

    任月丽出生在河北涿州偏僻的农村 由于父母多病 自小由奶奶带大 为了减轻家庭负担 年仅16岁的她孤身一人来到北京 开始在一小餐馆打工 满1个月后老板没给工资 流浪街头时看到有地下歌手在卖唱 从小就喜欢唱歌的她萌生了也要唱歌的想法 遂与一流浪歌
  • 步步为营--深入研究react技术栈 系列一 (jsx、组件、数据流)

    相关技术博客 1 步步为营 深入研究react技术栈 系列一 jsx 组件 数据流 2 步步为营 深入研究react技术栈 系列二 事件 组件性能优化 更多系列文章持续更新中 一 React简介 React 是一个用于构建用户界面的 Jav
  • python出现indexerror,Python:IndexError:列表索引超出范围错误

    Updated look bottom I am stuck I get a IndexError list index out of range Error def makeInverseIndex strlist numStrList
  • 常用4线风扇接口定义

    4根线分别是GND VCC FG PWM 位置可能不同 FG是转速信号 用于CPU侦测转速 转速 频率 30 4极风扇 PWM通过方波占空比控制转速 PWM接地 最低转速 PWM不接最高转速 频率25KHZ 一般Duty 0 20 转速是相
  • 图灵赠书——程序员11月书单

    10月书讯中奖名单 wudalang gd 精通Git 第2版 chszs CCNA学习指南 路由和交换认证 第2版 sujun10 同构JavaScript应用开发 dongfeng9ge 学习JavaScript数据结构与算法 第2版
  • 目标检测基础

    什么是目标检测 简单来说就是 检测图片中物体所在的位置 本文只介绍用深度学习的方法进行目标检测 同过举出几个特性来帮助各位理解目标检测任务 同时建议学习目标检测应先具备物体人工智能算法基础和物体分类现实基础 特性1 Bounding Box
  • 解决华为手机不能用USB链接电脑的问题

    可能是由于USB空松动 所以总是安装不完驱动程序 USB调试开关自动关闭 导致安装不完驱动程序 手机的USB调试开关就关闭了 可以这样解决 以下为花粉俱乐部转载 我们经常这样的事情 打开USB调试之后 本来用得好好的 点了下USB连接选项
  • VS 静态库lib如何依赖动态库dll

    一般来说 vs可以提供正常的依赖输入窗口用于依赖动态库 但是当工程设置生成静态库之后 VS默认不支持给静态库增加依赖动态库 链接器选项没有了 此时只能够把静态库所依赖的动态库也改成静态库 这样这个静态库才能被正常编译 否则编译的时候会报错
  • golang并发编程基础

    go并发编程 1waitgroup WaitGroup就是等待所有的goroutine全部执行完毕 add方式和Down方法要配套使用 package main import fmt sync func main var wq sync W
  • 【STM32技巧】HX711称重芯片详细说明

    概述 HX711 模块 A 通道带有 128 倍信号增益 可以将 5mV 的电压放大 128 倍 然后采样输 出 24bit AD 转换的值 单片机通过指定时序将 24bit 数据读出 如何计算传感器供电电压 HX711 可以在产生 VAV
  • PAT_B_1094 谷歌的招聘 (20 分)【测试点3,5】

    本题要求你编程解决一个更通用的问题 从任一给定的长度为 L 的数字中 找出最早出现的 K 位连续数字所组成的素数 输入格式 输入在第一行给出 2 个正整数 分别是 L 不超过 1000 的正整数 为数字长度 和 K 小于 10 的正整数 接
  • [HarekazeCTF2019]encode_and_encode

    HarekazeCTF2019 encode and encode 打开环境 得到源码
  • python+postgresql+psycopg2实现自动化数据库生成(数据库迁移)

    python pgsql psycopg2实现一键数据库生成 1 tips Navcat转储sql文件 存在主键自增 加入下面代码 CREATE SEQUENCE IF NOT EXISTS t 表名 id seq START 1000 手
  • FastDfs在NET下的使用

    FastDfs是一个开源的轻量级分布式文件系统 其原理可以查看http blog chinaunix net uid 20196318 id 4058561 html 然后部署安装部分可参考http blog csdn net poecha

随机推荐

  • codeblocks安装常见问题和版本区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 目前codeblocks有4个版本8 02 10 05 12 11 13 12 之前一直在用10 05的版本 很好用的 后来在做gtk是出现版本不匹配问题 就换了13 12
  • Java框架SSM学习——持久层Mybatis之动态SQL

    动态SQL 为什么要用动态SQL 如果使用JDBC或者类似Hibernate等其他框架 很多时候需要去根据需要去拼接SQL语句 这是一个很麻烦的事情 因为在某些查询中 需要多个条件 在使用其他框架的时候 需要用大量的Java代码进行判断 可
  • Windows Cluster 分布式算法

    在分布式系统中 都需要解决分布式一致性问题 那么 在Windows 集群中 使用了什么算法来保证集群的一致性呢 Paxos Windows Server 故障转移集群 WSFC 使用 Paxos 算法在整个系统中同步更改 通过记录 Paxo
  • 计算机四级网络考试容易蒙吗,计算机四级网络工程师通过率有多少

    计算机四级网络工程师通过率怎么样 我们都知道计算机四级网络工程师非常的难考 所以想大概知道下通过率是怎样的 给自己保个底 所以下面就由小编来给大家说说计算机四级网络工程师通过率是怎么样的吧 欢迎大家前来阅读 计算机四级网络工程师通过率 计算
  • C++宏定义

    define是C语言中提供的宏定义命令 其主要目的是为程序员在编程时提供一定的方便 并能在一定程度上提高程序的运行效率 用处 define命令是C语言中的一个宏定义命令 它用来将一个标识符定义为一个字符串 该标识符被称为宏名 被定义的字符串
  • Servlet[搭建web开发环境,将项目部署到服务器、创建web程序]

    目录 web开发环境搭建 创建web后端项目并部署到服务器的步骤 创建web后端程序 如何搭建后端服务器 如何开发后端服务器程序 实现前后端交互 开发第一个web应用程序 什么是服务器 广义上的服务器 计算机硬件 计算机软件 狭义上的服务器
  • docker镜像的导出与导入

    内网干活的忧桑大概就是偷点懒 使用docker镜像 dockerfile中使用的镜像内网中却没法down下来 so 找个外网机 先把需要的镜像下载下来 再将下载好的镜像载入到内网机 通过查资料 docker镜像的导入导出命令有save lo
  • 前端组件Bootstrap4(学习笔记一)

    Hello 大家好 今天要分享的文章仍然是关于前端的 为什么迟迟没有关于Android相关的文章呢 其实这个公众号一开始 我就有明确的表示 它不仅仅局限于Android 我希望它可以博采众长 以Android为主 其它技术为辅 夹杂一些社会
  • Unity3D之UI按键绑定事件案例(七)

    七 多个按键事件存在的时候怎么区分 怎么同时绑定事件 下面的案例可以给出答案 第一步 通过Hierarchy面板创建多个button 第二步 创建一个名为Buttons的脚本 代码如下 public class MyEventArgs pu
  • web前端可视化开发,前端优秀实践指南,知乎上已获万赞

    前言 跳槽 这在 IT 互联网圈是非常普遍的 也是让自己升职加薪 走上人生巅峰的重要方式 那么作为一个普通的Android程序猿 我们如何才能斩获大厂offer 呢 疫情向好 面试在即 还在迷茫踌躇中的后浪们 如何才能在面试中让自己脱颖而出
  • Qt自定义控件 —— 颜色选择组合控件

    在开始阅读本文之前 如果您有学习创建Qt自定义控件并在其他项目中引用的需求 请参考 Linux系统下在Qt Creator中创建自定义控件并在其他项目中引用https blog csdn net YMGogre article detail
  • head 请求了解过吗?如何用 get 模拟 head 请求?不需要服务器返回数据,怎么实现?

    HEAD请求是HTTP 1 1协议中定义的一个请求方法 与GET请求相似 但只请求目标URL的头部 不请求实际的数据或者说正文内容 其主要用途是 检查资源是否被修改 检查资源是否存在 校验缓存有效性 了解服务器性能 要用GET请求模拟HEA
  • [已解决]“ImportError: No module named flask”

    1 删除原有的用大写开头的Flask插件 pip uninstall Flask 2 yum安装 flask yum install python flask 3 等待安装完成就可以允许程序啦 100 有用
  • 快速编写json数据

    1 打开idea 2 新建txt文件 alt 单击快速加 编写json数据
  • C语言面试必问的经典问题(纯”gan“货)

    C语言面试必问的经典问题 1 预处理 1 预编译 编译过程最先做的工作是啥 何时需要预编译 指令有什么 答 预编译就是预处理 就是把一些文本的替换工作工作 预编译指令 include ifdef ifndef else endif 编译 字
  • 高德地图Js API的使用

    申请JSAPI的开发者key 申请地址 http lbs amap com dev key 引入高德地图JavaScript API文件 创建地图容器 在页面body里你想展示地图的地方创建一个div 容器 并指定id标识 div div
  • Python-Pyqt6之QIntValidator,QDoubleValidator无法限制数值范围的正则表达式解决方案

    在使用Pyqt6进行GUI设计的时候 在需要输入数值 整型 浮点型 的时候选择使用了QLineEdit这个组件控件 详情介绍 QLineEdit组件详情 QLineEdit自带的setValidator包含 QIntValidator QD
  • promise函数几种写法与坑

    promise是ES6中引入的处理异步函数的强大特性 但是对promise的不恰当使用可能会达不到最终目的 对这个问题的探究来源于这篇文章关于promises 你理解了多少 几个异步函数如下 resolve或reject在回调函数里被调用
  • 网络编程的几种I/O模式

    1 非阻塞I O 非阻塞I O 若想网络编程时调用I O函数不想让程序阻塞 需要使用I O复用技术 一个方法是poll 轮询 所谓轮询就是执行函数时 如果内核不能立即对应用的函数进行响应时 就返回给应用一个错误 而应用不停的循环调用该函数
  • JavaScript表示不背小数计算存在误差的锅

    浮点数的最高精度是17位小数 但是在实际计算时会产生莫名其妙的问题 如0 1 0 2的结果不是0 3 而是0 30000000000000004 这个舍入误差会导致无法测试特定的浮点数值 例如 var a 0 1 b 0 2 if a b