我有一个程序运行了一段时间,一切正常,直到发生这种奇怪的事情。当我将数字字符串转换为Single时,我只是无法获得所需的值。例如:Convert.ToSingle("11006.954")
返回值11006.9541Convert.ToSingle("20678.228")
返回值20678.2285
我知道我可以使用Convert.ToDouble修复它,但是修改现有系统将需要几天的时间。我正在使用vs2003 .net 1.1。
最佳答案
您似乎期望Single
能够准确表示您给出的数字。不行11006.9541是最接近11006.954的Single
值。 (实际上,最接近的Single
的确切值为11006.9541015625,但我怀疑您在调试器中看到11006.9541。)
如果要准确表示最初用小数表示的数字,则应使用System.Decimal
。
有关更多信息,请参阅我在.NET中有关binary floating point和decimal floating point的文章。
关于c# - C#将字符串转换为单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5469319/