keil MDK 写的程序,里面一个浮点变量的值,

[复制链接]
 楼主| hxdjb 发表于 2023-3-6 10:32 | 显示全部楼层 |阅读模式
正常应该是7.51  可是watch1监测 窗口显示7.40999985,另外一个变量的值是0.96 ,同样watch1监测 窗口显示0.960000038。看起来太费劲,如果直接保留小数点后3位就够了。有哪里可以设置吗?
ayb_ice 发表于 2023-3-6 10:42 | 显示全部楼层
"正常应该是7.51  可是watch1监测 窗口显示7.40999985"

7.51不可能显示这个值的
 楼主| hxdjb 发表于 2023-3-6 11:35 | 显示全部楼层
本帖最后由 hxdjb 于 2023-3-6 11:40 编辑

不好意思,是我粗心弄错了,正常应该是7.51,监测窗口显示7.50999985。有什么办法让窗口显示值和变量的值一样吗?
ayb_ice 发表于 2023-3-6 14:38 | 显示全部楼层
hxdjb 发表于 2023-3-6 11:35
不好意思,是我粗心弄错了,正常应该是7.51,监测窗口显示7.50999985。有什么办法让窗口显示值和变量的值一 ...

浮点数只能表示近似值,除非能控制显示N位小数的功能,但好像没有
nvjwiciw659 发表于 2023-3-6 15:56 | 显示全部楼层
放大四舍五入转成整型就行了
coody 发表于 2023-3-6 15:59 | 显示全部楼层
7.51不可能显示7.40999985,应该是7.50999985。
你要是明白十进制浮点数的二进制表示原理,就会明白上面的显示问题。
GlenX 发表于 2023-3-6 17:42 | 显示全部楼层
将你的数字乘以100,转为整形(四舍五入)Y,然后 Yf*0.01就可以了
William1994 发表于 2023-3-6 19:07 | 显示全部楼层
假设我是keil的老板,我做了这个功能,所有的浮点数都只显示小数点后三位。
会不会被其它人揍一顿?
zyj9490 发表于 2023-3-6 21:32 | 显示全部楼层
二种显示的格式精度不一样而已。以实际内存值为准啊。
timerc 发表于 2023-3-7 08:22 | 显示全部楼层
要不然你就加个做四舍五入的函数,不就可以了么,非得这么强迫症么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

244

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

133

主题

244

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部