keil MDK 写的程序,里面一个浮点变量的值,
正常应该是7.51可是watch1监测 窗口显示7.40999985,另外一个变量的值是0.96 ,同样watch1监测 窗口显示0.960000038。看起来太费劲,如果直接保留小数点后3位就够了。有哪里可以设置吗? "正常应该是7.51可是watch1监测 窗口显示7.40999985"7.51不可能显示这个值的 本帖最后由 hxdjb 于 2023-3-6 11:40 编辑
不好意思,是我粗心弄错了,正常应该是7.51,监测窗口显示7.50999985。有什么办法让窗口显示值和变量的值一样吗? hxdjb 发表于 2023-3-6 11:35
不好意思,是我粗心弄错了,正常应该是7.51,监测窗口显示7.50999985。有什么办法让窗口显示值和变量的值一 ...
浮点数只能表示近似值,除非能控制显示N位小数的功能,但好像没有 放大四舍五入转成整型就行了 7.51不可能显示7.40999985,应该是7.50999985。
你要是明白十进制浮点数的二进制表示原理,就会明白上面的显示问题。 将你的数字乘以100,转为整形(四舍五入)Y,然后 Yf*0.01就可以了 假设我是keil的老板,我做了这个功能,所有的浮点数都只显示小数点后三位。
会不会被其它人揍一顿? 二种显示的格式精度不一样而已。以实际内存值为准啊。 要不然你就加个做四舍五入的函数,不就可以了么,非得这么强迫症么
页:
[1]