关于.NET:C#使用双数字

C# issue with double number

本问题已经有最佳答案,请猛点这里访问。

我有一个奇怪的问题,在C中使用双数字。NET这是我的测试:

1
double my_value = 0.49;

问题是显示的变量值是0.48999999999999,我不需要使用Math.Round()函数显示0.49;我需要精确存储该值。

谢谢您。


欢迎使用浮点精度。如果需要更高的精度,请使用decimal类型。

1
decimal my_value = 0.49m;

如果你想进一步了解这是为什么,我建议你阅读这篇文章-每一个计算机科学家都应该知道关于浮点运算的内容


使用decimal代替,double是浮点二进制点类型。

1
decimal my_value = 0.49m;

有用的链接;

  • 浮点表示和精度
  • 每一个计算机科学家都应该知道什么是浮点运算


当需要使用精确值时,不要使用double类型。这是decimal类型的域

1
decimal my_value = 0.49m;