hxdjb 发表于 2023-3-6 10:32

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

正常应该是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

要不然你就加个做四舍五入的函数,不就可以了么,非得这么强迫症么
页: [1]
查看完整版本: keil MDK 写的程序,里面一个浮点变量的值,