我需要调整 double 变量的值。为了做到这一点,我编写了这个扩展方法
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呢?
最佳答案
你是对的, double 据类型对于数学运算来说并不精确。
尝试使用精确的十进制数据类型,例如 System.Decimal
https://msdn.microsoft.com/en-us/library/system.decimal.aspx
关于c# - 如何使用双变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697626/