使用占位符将double舍入到两位小数

时间:2013-11-18 22:40:28

标签: c# rounding

我已经看到很多关于如何使用Math.Round()舍入到两位小数的问题,但是在使用占位符时却没有。这是我最好的尝试,但程序仍然给我14位小数:

Console.Write("\n\nPercentatge Weight: {0}% ", 
    G[ArrayCount] * 100 / RayTotal,
    Math.Round(RayTotal, 2));

在此次运行后,我获得了一个百分比,例如14.3256941565

我只想让它成为14.33

应该补充说我还没有取决于用户输入的值。

3 个答案:

答案 0 :(得分:2)

占位符{0}引用第一个参数,但您的舍入值是第二个参数。

要仅使用占位符对其进行格式化,您需要包含指定的F2,其中2是小数位数:

Console.Write("\n\nPercentatge Weight: {0:F2}% ", G[ArrayCount] * 100 / RayTotal);

MSDN here中的更多信息。

答案 1 :(得分:2)

如果您已将您的号码作为百分比,则可以使用f2作为格式字符串来舍入到2位小数:

double myDouble = 14.3256941565;
Console.WriteLine("Percentage Weight: {0:f2}%", myDouble); // Percentage Weight: 14.33%

否则,您可以使用p2作为格式字符串自动将数字格式化为百分比:

double myDouble = 0.143256941565;
Console.WriteLine("Percentage Weight: {0:p2}", myDouble); // Percentage Weight: 14.33 %

进一步阅读

答案 2 :(得分:0)

   double myDouble = 14.3256941565;

   Console.WriteLine("Percentage Weight: {0}%", Math.Round(myDouble, 2));