社区
ASP
帖子详情
两个相同的双精度小数相减不等于0
yangyaodell
2020-06-16 11:09:42
两具cdbl类型的7.6相减,等于
7.6-7.6=2.66453525910038E-15
这个怎么处理?
...全文
5660
3
打赏
收藏
两个相同的双精度小数相减不等于0
两具cdbl类型的7.6相减,等于 7.6-7.6=2.66453525910038E-15 这个怎么处理?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
化境者
2020-06-21
打赏
举报
回复
不太可能会出现这个问题,你用两个变量装一下再减试试
hookee
2020-06-20
打赏
举报
回复
先要确定保留几位小数
三楼の郎
2020-06-18
打赏
举报
回复
round函数做四舍五入
python-浮点数,复数,分数以及
小数
这就引出了我们另外一个类型,
小数
。上面的代码1/7的时候,我们看到的结果a = 0.1428571428571428571428571429,这个精度就是28位,所以根据上面我们说
小数
会扩展精度,所以这个结果也是28位的精度,虽然其结果就是0,而对于b,用浮点数来计算,发现是非0的数,这个再次验证
小数
的精度是固定的,而浮点数的精度不是固定的。实际上,这说明浮点数在内存中的表示是不精确的,所以才会出现这种似是而非的情况,所以我们在对浮点数计算的时候要相当小心,尤其是
两个
相同
的值
相减
的情况,结果可能不是0。
为什么 0.1 + 0.2 !== 0.3?如何解决这个问题?
众所周知,JavaScript在某些浮点数的运算时会出现精度丢失的问题,比如在控制台中输入0.1+0.2,得到的是0.30000000000000004,而不是精确的0.3,这是什么原因呢? 在计算机基础中我们应该学过,计算机中所有的数据最终都是以二进制的形式存储的,当然数字的存储也不例外。 当计算0.1+0.2的时候,实际上计算的是这
两个
数字在计算机里所存储的二进制,0.1 和 0.2 在转换为二进制表示的时候会出现位数无限循环的情况。当然计算机不会用无限的空间去存储这些无限循环的二进制数...
html js
小数
点计算,js
小数
的精度损失
参考如何理解double精度丢失问题?比如1.1+0.1=1.2000000000000002,在java C++ OC等语言中出现是否原理
相同
?根本原因在于,数学意义上的
小数
不是每个都能用二进制在有限位数内精确的表示。像 0.1,1.1 这样的
小数
没有精确的二进制表示,然后求和就不是1.2了。一、把 0.1 转成二进制表示我们知道 DEC(1) 就是 BIN(1),但是 DEC(0.1) 怎么转...
【算法基础】不能用等号判断
两个
小数
是否相等
计算机内部无法用二进制对
小数
来精确的表达,所以不能用等号来判断
两个
小数
是否相等。
bigdecimal取
小数
部分_java中
小数
的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定...
一、 计算机的
小数
计算一定范围内精确,超过范围只能取近似值:计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值。java中各类型的精度范围参见:http://blog.csdn.net/longshenlmj/article/details/47616481编程时注意:doulbe类型的数,不能用等号判定是否相等(或者是一定范围内可以)。因为两次同样的计算...
ASP
28,402
社区成员
356,940
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章