如何使用双变量
本文关键字:变量 何使用 | 更新日期: 2023-09-27 18:29:34
我需要调整双变量的值。为了做到这一点,我写了这个扩展方法
public static class Helper
{
public static double Adjust(this double value, double l, double h)
{
while (value < l)
value += h;
while (value >= h)
value -= h;
return value;
}
}
但这并没有给我预期的结果。
我在这里调用我的代码:
private void Form1_Load(object sender, EventArgs e)
{
double a = 10.1;
Text = a.Adjust(5,10).ToString();
}
我原以为结果是0.1
,但现在是0.099999999999999646
。我发现它与double
数据类型的精度有关。但是我怎样才能得到0.1的结果呢?
您是对的,双数据类型不适用于数学运算。
尝试使用精确的十进制数据类型,如System.decimal
https://msdn.microsoft.com/en-us/library/system.decimal.aspx
由于float
或double
数据类型中表示的舍入数字而产生结果。非直接行为的原因是,并非每个有理数都可以在特定的浮点类型中表示,并且可表示数的"分辨率"随着绝对值的增加而降低。