gpt4 book ai didi

c++ - 奇怪的舍入行为

转载 作者:行者123 更新时间:2023-11-30 05:16:44 25 4
gpt4 key购买 nike

<分区>

我正在尝试将 double 四舍五入到特定精度,但是以下函数会给我不同的结果:

版本 1:

static double RoundPrecision(double& val)
{
val = floor(val * 1000 + 0.5) * 0.001;
return val;
}

版本 2:

static double RoundPrecision(double& val)
{
val = floor(val * 1000 + 0.5) / 1000;
return val;
}

舍入数字 300.9 时的示例输出:

  • 版本 1:300.90000000000003
  • 版本 2:300.89999999999998

两个版本有时会给出相同的结果,但对于特定的输入,结果会有所不同。在将数字等同于程序中的其他变量时,我必须保持一致的行为。

编辑:

我知道浮点精度的问题,这正是我在这里试图通过舍入避免的问题。我需要一种一致的方法来舍入到小数点后 3 位精度。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com