为什么C#中的浮点运算不精确?

为什么以下程序打印其打印内容?

class Program

{

static void Main(string[] args)

{

float f1 = 0.09f*100f;

float f2 = 0.09f*99.999999f;

Console.WriteLine(f1 > f2);

}

}

输出是

false

回答:

浮点数只有这么多的精度。如果看到f1 == f2,那是因为任何差异都需要比32位浮点数所能表示的精度更高的精度。

我建议阅读每位计算机科学家应阅读的有关浮点的知识

以上是 为什么C#中的浮点运算不精确? 的全部内容, 来源链接: utcz.com/qa/414323.html

回到顶部