首页 > 解决方案 > 具有奇怪结果的浮点数运算

问题描述

在阅读浮点数精度时,我做了一个小测试,并期望结果 1 为真,但结果恰恰相反。我不知何故找不到合理的解释,请帮助:)

输入

using System;
                    
public class Program
{
    public static void Main()
    {
        float a = 0.1f;
        float b = 0.2f;
        float c = 0.1f + 0.2f;
        float d = a + b;
        bool result1 = (a + b) == (0.1f + 0.2f);
        bool result2 = c == d;
        Console.WriteLine("result1 == " + result1);
        Console.WriteLine("result2 == " + result2);
    }
}

输出:

result1 == False
result2 == True

标签: c#precision

解决方案


推荐阅读