C# 避免convert.tosingle方法中的舍入

C# 避免convert.tosingle方法中的舍入,c#,floating-point,rounding-error,C#,Floating Point,Rounding Error,考虑一下 object a =1.123456; float f = convert.ToSingle(a); 但是当我打印f的值时,我得到1.123455 它正变得越来越全面。 还有一个问题是我不能在代码中更改float的数据类型。 请帮忙 这是因为浮点类型的工作方式。 如果您想要更高的精度(以牺牲某些性能为代价),请使用Double或Decimal类型 有关浮点丢失精度原因的详细信息,请阅读: 请注意,当为对象指定浮点值时,它将转换为双精度。如果希望值保持为浮点值,则在我运行该代码并打印结

考虑一下

object a =1.123456;
float f = convert.ToSingle(a);
但是当我打印f的值时,我得到1.123455

它正变得越来越全面。 还有一个问题是我不能在代码中更改float的数据类型。
请帮忙

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

有关浮点丢失精度原因的详细信息,请阅读:

请注意,当为对象指定浮点值时,它将转换为双精度。如果希望值保持为浮点值,则在我运行该代码并打印结果时,在数字的末尾添加“F”(例如:对象a=1.123456F),我得到“1.123456”作为输出。使用VS2010和C#4.0