我在C#中使用双数字有一个奇怪的问题。 NET这是我的测试:
double my_value = 0.49;
问题是显示的变量值是0.48999999999999999我不需要使用Math.Round()
函数显示0.49;我需要准确存储这个值。
谢谢。
答案 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;