gpt4 book ai didi

c# - 添加两个 double 值时的算术错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:44 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Floating point inaccuracy examples
double arithmetic and equality in Java

我在尝试调试检查两个值是否相等的排序例程时发现了这个问题。获取值只是对两个 double 变量做一些加法:0.31 + 0.27。

当排序将这两个对象的总和与其他一些对象(其总和也等于 0.58)进行比较时,它告诉我比较不相等。查看第一个对象的总和,我看到它列为 0.58000000000000007。想知道它是否与我的代码有关,我创建了一个简单的控制台应用程序来测试它:

static void Main(string[] args)
{
double val1 = .31;
double val2 = .27;

Console.WriteLine("Value 1: " + val1);
Console.WriteLine("Value 2: " + val2);

double added = val1 + val2;

if (!added.Equals(.58))
Console.WriteLine("Added value is not .58!");
else
Console.WriteLine("Added value is .58");


Console.WriteLine("Press any key to exit.");
Console.ReadLine();
}

在我的机器上运行它,它又是 0.58000000000000007。我让一位同事做了同样的事情并得出了同样的结果。

有没有人遇到过这个?我们都在运行 64 位 Windows 7,这是在 C# 中完成的——我还没有在其他场景中测试过它。

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