C# .NET浮点精度是否为9位?
我正在将一个应用程序从.NET移植到Mono运行时,在代码中的某一点上,我可以看到一个浮点值C# .NET浮点精度是否为9位?,c#,precision,C#,Precision,我正在将一个应用程序从.NET移植到Mono运行时,在代码中的某一点上,我可以看到一个浮点值158136.422。我对float的理解是它是7位数的精度,那么这个数字怎么可以接受呢?Mono会像我预期的那样将其修剪为7位数 如果在C#我会的 编写此代码时,它将四舍五入到158136.4。: float f = 158136.422f; 分配给f的确切值为158136.421875 在字符串表示中输出多少位是另一回事 当我使用: float f = 158136.422f; Console.Wr
158136.422
。我对float的理解是它是7位数的精度,那么这个数字怎么可以接受呢?Mono会像我预期的那样将其修剪为7位数
如果在C#我会的
编写此代码时,它将四舍五入到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上。您如何检查
它是否四舍五入
?请注意,谢谢!MonoDevelop必须在调试时使用ToString()监视值,而Visual Studio必须使用其他工具。
158136.4
158136.422