.NET Float Precision似乎是9位数?

时间:2013-08-21 15:13:07

标签: c# precision

我正在将应用程序从.NET移植到Mono Runtime,在代码中的某一点我可以看到float的值为158136.422。我对浮动的理解是它是7位精度,那么这个数字怎么可以接受?按照我的预期,Mono将其修剪为7位数。

如果在C#中我做了

float f = 158136.422f;

它四舍五入到158136.4。

1 个答案:

答案 0 :(得分:10)

编写此代码时:

float f = 158136.422f;

分配给f完全值为158136.421875

字符串表示中输出的位数是另一回事。

当我使用时:

float f = 158136.422f;
Console.WriteLine(f);
Console.WriteLine(f.ToString("r"));

我得到的结果是:

158136.4
158136.422
单声道和.NET上的