0
考虑避免四舍五入,在convert.tosingle方法
object a =1.123456;
float f = convert.ToSingle(a);
但是当我打印f的值,我得到1.123455。
它变得四舍五入。 此外问题是我不能改变代码中的浮点数据类型。 请帮忙。
考虑避免四舍五入,在convert.tosingle方法
object a =1.123456;
float f = convert.ToSingle(a);
但是当我打印f的值,我得到1.123455。
它变得四舍五入。 此外问题是我不能改变代码中的浮点数据类型。 请帮忙。
这样做是因为浮点类型的工作方式。 如果您想要更好的精度(以某些性能为代价) - 请改用Double或Decimal类型。
有关为何浮点精度损失的更多信息,请阅读: http://msdn.microsoft.com/en-us/library/c151dt3s%28VS.80%29.aspx
注意,有浮点值分配对象时 - 这将被转换为加倍。 如果您希望将值保留为浮点数 - 在数字的末尾添加“F”(例如:object a = 1.123456F) – Nissim 2010-08-24 09:13:35
当我运行该代码并打印结果时,我会得到“1.123456”作为输出。使用VS2010和C#4.0 – 2010-08-24 10:12:21