如果我添加2个双数据类型值,结果将四舍五入并打印。如何获得双精确输出?

时间:2016-10-25 10:10:05

标签: c# output user-defined-data-types

我需要添加双值并显示结果。但由此产生的价值是错误的。

class Program
{
    static void Main(string[] args)
    {
        int i = 4;
        double d = 4.0;
        string s = "HackerRank ";
        int i1 = 12;
        double d1 = 4.0;
        string s1 = "is the best place to learn and practice coding!";
        int sum = 0; string s2 = string.Empty;
        sum = sum+i + i1;
        s2 = s2 + s + s1;
        Console.WriteLine(sum);
        Console.WriteLine("{0}+{1}={2}",d,d1,(d+d1).ToString());
        Console.WriteLine(s2);
        Console.ReadLine();
    }
}

the output snapshot is here

我的预期输出是4.0 + 4.0 = 8.0

但输出值是圆满的。任何人都可以提供这个问题的原因和解决方案吗?

4 个答案:

答案 0 :(得分:2)

试试这个

Console.WriteLine( String.Format("{0:0.0}", d + d2));

答案 1 :(得分:1)

在每个双

上使用ToString()进行尝试
Console.WriteLine($"{d.ToString("G1")}+{d1.ToString("G1")}=(d + d1).ToString("G1")});

答案 2 :(得分:1)

如果要以x.xx格式显示输出,可以使用:

Console.WriteLine("{0:F2}+{1:F2}={2:F2}",d,d1,d+d1);

答案 3 :(得分:1)

使用此

Console.WriteLine("{0:F}+{1:F}={2:F}",d,d1,d+d1);

" F"是定点格式说明符。您还可以通过更改" F"来指定所需的小数位数。到" F2,F3等"根据您的要求或保留为" F"这样它就可以根据变量返回输出。