为什么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