【发布时间】:2013-06-25 12:16:19
【问题描述】:
我正在尝试使用 GSL 创建直方图。当我尝试将除法 1470/100 的值添加到直方图中时遇到问题。 这导致 14.69999999 并且当添加到直方图中时,它会四舍五入到较低的 bin。 我的问题是如何使 1470/100 结果为 14.7 而不是 14.69999? 谢谢
编辑:
int minRange = 14;
double val;
val = minRange + j*0.05;
gsl_histogram_increment(hist, val);
当 val 添加到直方图中时,它被认为是 14.65 而不是 14.7。 (在这种情况下,j 是 14)。
我通过将 1e-6 添加到 val 解决了这个问题。谢谢你的帮助
【问题讨论】:
-
也许我在这里错了,但如果你想把所有直方图点四舍五入,你不能做类似 round(number*100)/10.0 的事情吗?请问可以提取代码吗?不确定您使用的是什么数据类型。
-
仅供参考:
14.7IEEE 754 浮点表示:32-bit float 和 64-bit double -
感谢您的解释。现在我明白了