c++ - 在 C++ 中表示概率

标签 c++ probability rounding-error

我试图用 C++ 表示一组简单的 3 个概率。例如:

a = 0.1  
b = 0.2  
c = 0.7

(据我所知概率加起来一定是1)

我的问题是,当我尝试在 C++ 中将 0.7 表示为 float 时,我最终得到 0.69999999,这对我稍后进行计算没有帮助。 0.8 也一样,0.80000001。

在 C++ 中是否有更好的方法来表示 0.0 和 1.0 之间的数字?

请记住,这与数字在内存中的存储方式有关,因此在对这些值进行正确测试时,我不关心它们是如何显示/打印出来的。

最佳答案

这与 C++ 无关,而与 float 在内存中的表示方式有关。您永远不应该使用相等运算符来比较浮点值,请参阅此处以获得更好的方法:http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

关于c++ - 在 C++ 中表示概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772579/

相关文章:

c++ - 将结构数组传递给 pthread_create

c++ - dll 的环境变量与 exe 不同

c++ - 旋转图像会导致 Qt 失真

python - MPI4PY:不同数量的节点返回不同的结果

java - 如何从以微单位表示的给定金额中提取单位和子单位部分?

c++ - 使用 libavformat 不播放的 H.264 混合到 MP4

c++ - atoi(string.c_str()) 偶尔出现未处理的异常已更新

c++ - 以给定的概率得到真或假

machine-learning - 基于隐马尔可夫模型的分类器中状态数的影响

C++ 随机数检查非常小的概率