我正在读取XML文件并读取10534360.9的特定值
当我将字符串解析为十进制(decimal.Parse(afNodes2[0][column1].InnerText)
)时,我得到了10534360.9
,但是当我将其解析为浮点(float.Parse(afNodes2[0][column1].InnerText)
)时,我得到了1.053436E+07
。
有人可以解释为什么吗?
您将看到用“ E”或“指数”表示法表示的值。
1.053436E+07
等价于1.053436 x 10^7
或10,534,360
,这是.NET10,534,360.9
以System.Single
(float
)数据类型(32位,7位精度)存储的最精确方式。
您会看到它以这种方式表示,因为它是该Single.ToString()
方法产生的默认格式,调试器使用该默认格式在监视屏幕,控制台等上显示值。
编辑
可能不用说,但是如果您想保留XML中原始值的精度,则可以选择一种数据类型,该数据类型可以保留有关数字的更多信息:
System.Double
(64位,15-16位)System.Decimal
(128位,28-29位有效数字)本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句