2014-09-29 44 views
1

,我在一个XML文件中读取和阅读的10534360.9解析字符串的浮动

一个特定的值当我解析字符串为十进制(decimal.Parse(afNodes2[0][column1].InnerText))我得到10534360.9,但是当我分析它的浮动( float.Parse(afNodes2[0][column1].InnerText))我得到1.053436E+07

有人可以解释为什么吗?

回答

3

您看到在 “E” 或 “指数” 符号所代表的价值。

1.053436E+07相当于1.053436 x 10^7,或10,534,360,这是最精确的方式.NET可以存储在System.Singlefloat)数据类型10,534,360.9(32位,7位的精度)。

你看到它代表,那是因为它是由Single.ToString()方法,其调试器使用到手表的屏幕,控制台上显示值所产生的默认格式等

编辑

它可能不言而喻,但如果你想保留在XML原始值的精确度,你可以选择可以保留你的号码更多信息的数据类型:

1

1.053436E + 07 = = 10534360.9

这些数字都是一样的,只是显示方式不同。

+0

谢谢阿莫,十分赞赏。 – 2014-09-29 22:50:45

1

因为float具有7位数的精度。 十进制数的精度为28位数。