c# - 如何使用双变量?

标签 c# .net

我需要调整 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/

相关文章:

c# - 在 MonoTouch 中的编译时检测 JIT

c# - 错误 1150 genasm.exe(1) : error There was an error finalizing type . 方法 'DoParse'

c# - 使用ReactiveExtensions并行处理集合的值

c# - 在 c#.net 中的现有数组中添加新项

c# - 什么时候使用静态变量?

.net - MenuStrip 控件能否将其 LayoutStyle 设置为 StackWithOverflow?

.net - 我应该使用什么 gacutil.exe?

c# - Visual Studio 2013 在打开 xsl 时崩溃

c# - 允许使用Task.Run异步运行任何方法的.Net Framework中的* Async方法的目的是什么?

c# - HttpWebRequest.GetResponse()失败时如何获取错误信息