C#双精度减法应=0
我读过几篇文章,我理解双重算术并不总是能返回你所期望的结果 但我的问题不同,因为我在检查两个数字是否相同,而当我期望为真时,我得到的是假 我也读过这篇文章,但仍然很难理解为什么两个看似相等的双变量显示不相等 更新:下面的答案帮助我理解调试器显示的值并不是“全部”。这就是为什么两个浮动看起来是相等的。当悬停变量时,调试器显示相等的值C#双精度减法应=0,c#,precision,C#,Precision,我读过几篇文章,我理解双重算术并不总是能返回你所期望的结果 但我的问题不同,因为我在检查两个数字是否相同,而当我期望为真时,我得到的是假 我也读过这篇文章,但仍然很难理解为什么两个看似相等的双变量显示不相等 更新:下面的答案帮助我理解调试器显示的值并不是“全部”。这就是为什么两个浮动看起来是相等的。当悬停变量时,调试器显示相等的值 对于浮点数,默认字符串格式不精确,应使用“G17” 结果: 5.70833333 5.70833333 5.708333333 5.7083333295 假 10
对于浮点数,默认字符串格式不精确,应使用
“G17”
结果:
5.708333335.70833333
5.708333333
5.7083333295
假
100000000010110110101010101010101010101010101010101010101010101010101010101010101
100000000010110110101010101010101010101010101010101010101010110101010101010001 通常要比较两个浮点数,可以使用一个小的错误数
Console.WriteLine(Math.Abs(a - b) < 0.0000001);
Console.WriteLine(Math.Abs(a-b)<0.0000001);
试着改用十进制
。什么是itme
?qty1和item.Length都是双倍的。因为它们看似相等,但实际上并不相等。你的问题是什么?我没看见
Console.WriteLine(Math.Abs(a - b) < 0.0000001);