C++ 舍入问题

标签 c++ histogram gsl

我正在尝试使用 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 解决了这个问题。谢谢你的帮助

最佳答案

这是一个浮点精度问题。解决问题的一个好方法是将直方图点设置为刚好接近积分值,例如15 - e 其中 e 的顺序为 10-6。

关于C++ 舍入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17297101/

相关文章:

statistics - 求两个直方图的卷积

c - Julia:调用 GSL 函数

c - 动态分配和GSL(Gnu科学库)

c - 初始化 GSL 矩阵的元素

c++ - OpenGL - OBJ 中的顶点法线

c++ - 我可以使用模板在 QString 和 std::string 之间进行自动转换吗?

c++ - 指向结构错误 vector 的指针

python - Numpy 2d 直方图总和不为 1

c++ - 在 Python 中制作 Qt/C++ 原型(prototype)

python - 带有 bins 值百分比的直方图?