2

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

double my_value = 0.49;

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

谢谢你。

4

3 回答 3

7

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

decimal my_value = 0.49m;

如果您想了解更多关于为什么会这样的信息,我建议您阅读这篇文章 -每个计算机科学家都应该知道的关于浮点运算的知识

于 2013-09-04T10:47:43.650 回答
1

取而代之decimaldouble浮点型二进制

decimal my_value = 0.49m;

有用的链接;

于 2013-09-04T10:48:40.010 回答
0

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

decimal my_value = 0.49m;
于 2013-09-04T10:48:13.313 回答