打印

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

[复制链接]
1377|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hxdjb|  楼主 | 2023-3-6 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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位小数的功能,但好像没有

使用特权

评论回复
5
nvjwiciw659| | 2023-3-6 15:56 | 只看该作者
放大四舍五入转成整型就行了

使用特权

评论回复
6
coody| | 2023-3-6 15:59 | 只看该作者
7.51不可能显示7.40999985,应该是7.50999985。
你要是明白十进制浮点数的二进制表示原理,就会明白上面的显示问题。

使用特权

评论回复
7
GlenX| | 2023-3-6 17:42 | 只看该作者
将你的数字乘以100,转为整形(四舍五入)Y,然后 Yf*0.01就可以了

使用特权

评论回复
8
William1994| | 2023-3-6 19:07 | 只看该作者
假设我是keil的老板,我做了这个功能,所有的浮点数都只显示小数点后三位。
会不会被其它人揍一顿?

使用特权

评论回复
9
zyj9490| | 2023-3-6 21:32 | 只看该作者
二种显示的格式精度不一样而已。以实际内存值为准啊。

使用特权

评论回复
10
timerc| | 2023-3-7 08:22 | 只看该作者
要不然你就加个做四舍五入的函数,不就可以了么,非得这么强迫症么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

242

帖子

2

粉丝