如果我添加2双数据类型值,结果四舍五入并打印.我如何得到精确的双精度输出

本文关键字:何得 输出 双精度 打印 数据类型 2双 添加 四舍五入 结果 如果 | 更新日期: 2023-09-27 18:14:43

我需要添加双值并显示结果。但是结果值是错误的

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();
    }
}

输出快照在这里

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

但是输出值是舍入的。谁能提供这个问题的原因和解决方案?

如果我添加2双数据类型值,结果四舍五入并打印.我如何得到精确的双精度输出

试试这个

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

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

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

尝试在每个double上使用ToString()

Console.WriteLine($"{d.ToString("G1")}+{d1.ToString("G1")}=(d + d1).ToString("G1")});

使用

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

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