OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 176|回复: 3

一个关于浮点数运算的问题

[复制链接]

10

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2017-9-8
在线时间
433 小时
发表于 2025-1-22 14:04:03 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 jian0052 于 2025-1-22 14:12 编辑

如图所示,CO2_Value的值应该是0.02,为什么出现图中的0.0199999996呢,求解 11111.PNG

最佳答案

查看完整内容[请看2#楼]

可以了解下浮点数的储存格式,然后你就会知道在二进制里,描述浮点数除了0.5,0.25,0.125....这样的小数组合,其他的都是逼近运算而不是精确运算
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
529
金钱
529
注册时间
2014-8-14
在线时间
154 小时
发表于 2025-1-22 14:04:04 | 显示全部楼层
本帖最后由 Cindre鞡 于 2025-1-22 14:35 编辑

可以了解下浮点数的储存格式,然后你就会知道在二进制里,描述浮点数除了0.5,0.25,0.125....这样的小数组合,其他的都是逼近运算而不是精确运算 1.jpg
回复

使用道具 举报

12

主题

3343

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8459
金钱
8459
注册时间
2020-5-11
在线时间
3901 小时
发表于 2025-1-22 14:29:53 | 显示全部楼层
虽然我也不懂,但是如果保留前几位小数并作四舍五入处理,它的值也就是0.02。
似乎也曾听说两个浮点数作比较时可能会出问题。
所以建议尽量避免浮点数,比如用整数123来表示小数1.23,只里在显示时加个小数点。
专治疑难杂症
回复

使用道具 举报

10

主题

122

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2532
金钱
2532
注册时间
2017-9-8
在线时间
433 小时
 楼主| 发表于 2025-1-22 16:55:40 | 显示全部楼层
谢谢各位解答,我明白了,以后直接用整形去处理数据了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-22 16:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表