gpt4 book ai didi

c# - 看似相等的 float 变量不相等的例子

转载 作者:太空狗 更新时间:2023-10-30 00:48:40 25 4
gpt4 key购买 nike

<分区>

任何人都可以向我展示两个包含浮点值的 C# 变量的示例,这些浮点值“看起来”相等但实际上不相等。当我说“看起来相等”时,我的意思是它们在直觉上似乎是相等的。

我寻找这样一个示例的原因是因为我有比较两个浮点变量是否相等的代码,而 Visual Studio 警告我 由于精度不同, float 的比较可能不相等这两个值。。我知道 float 变量不精确(这里有一个 StackOverflow question,对此进行了非常清楚的讨论和解释)但是我没有找到一个实际的例子,其中两个看起来相等的值实际上被 C# 认为是不同的。

例如,我之前提到的 SO 问题的第一个答案提到 9.292/10 在内部表示不同所以我写了下面的代码来验证是否C# 会将它们视为相等或不相等,结果是它们被视为相等。

var f1 = 92f / 10f;
var f2 = 9.2f;
if (f1 == f2)
{
Console.Write("Equal, as expected");
}
else
{
Console.Write("Surprisingly not equal");
}

因此,我正在寻找一个 f1f2 的示例,它们“看起来”是相等的,但会导致 C# 将它们视为不同的。

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