.NET浮点精度显示为9位数



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

如果在C#中我做

float f = 158136.422f;

四舍五入到158136.4。

当您编写此代码时:

float f = 158136.422f;

分配给f精确值为158136.421875

在一个字符串表示中输出多少个数字是另一回事。

当我使用:

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

我得到的结果:

158136.4
158136.422

在Mono和.NET.

最新更新