避免在convert.tosingle方法中舍入

时间:2010-08-24 08:59:14

标签: c# floating-point rounding-error

考虑,

object a =1.123456;
float f = convert.ToSingle(a);

但是当我打印f的值时,我得到1.123455。

它正在四舍五入。 另外问题是我无法在代码中更改float的数据类型。 请帮忙。

1 个答案:

答案 0 :(得分:1)

这是因为浮点类型的工作方式。 如果您想要更好的精度(以某些性能为代价) - 请改用Double或Decimal类型。

有关浮点丢失精度的原因的详细信息,请阅读: http://msdn.microsoft.com/en-us/library/c151dt3s%28VS.80%29.aspx