带双号的C#问题

时间:2013-09-04 10:45:41

标签: c# .net double rounding

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

double my_value = 0.49;

问题是显示的变量值是0.48999999999999999我不需要使用Math.Round()函数显示0.49;我需要准确存储这个值。

谢谢。

3 个答案:

答案 0 :(得分:5)

欢迎使用浮点精度。如果您希望更多精确度,请使用decimal类型。

decimal my_value = 0.49m;

如果您想详细了解为什么会这样,我建议您阅读本文 - What Every Computer Scientist Should Know About Floating-Point Arithmetic

答案 1 :(得分:1)

答案 2 :(得分:0)

当您需要使用确切的值时,请勿使用double类型。这是decimal类型的域

decimal my_value = 0.49m;