双2位小数

本文关键字:小数 2位 | 更新日期: 2023-09-27 18:06:57

可能重复:
如何正确地四舍五入和格式化小数?

我有这个:

double xValue = 0.0;
double yValue = 0.0;
foreach (var line in someList)
{
    xValue = Math.Round(Convert.ToDouble(xDisplacement - xOrigin), 2);
    yValue= Math.Round(Convert.ToDouble(yDisplacement + yOrigin), 2);
    sw.WriteLine("( {0}, {1} )", xValue, yValue);
}

当它计算时,假设它四舍五入到小数点后2位。

但是

当一个数字类似于6.397时,它将四舍五入到6.4,而不包括后面的"0">

如何在数字末尾添加"0">

如果我将此添加到BEFORE中(除非有更好的方法?(,则上面的foreach循环…:

string properX = xValue.ToString().Replace(".", "");
string properY = yValue.ToString().Replace(".", "");

我该怎么做?

双2位小数

使用格式字符串:

sw.WriteLine("( {0:0.00}, {1:0.00} )", xValue, yValue);

有关文档,请参阅标准数字格式字符串。CCD_ 1和CCD_ 2公开相同的格式选项。

此链接中的第一组示例:

http://www.csharp-examples.net/string-format-double/

// just two decimal places
String.Format("{0:0.00}", 123.4567);      // "123.46"
String.Format("{0:0.00}", 123.4);         // "123.40"
String.Format("{0:0.00}", 123.0);         // "123.00"

应该是你想要的。它还详细介绍了更多信息。

MSDN字符串数字格式文档:

http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierPt

这个尾随的零与数字本身无关,而是与它的表示形式有关。所以,如果你想显示它,数字没有什么变化——使用字符串格式:

sw.WriteLine("( {0:0.00}, {1:0.00} )", xValue, yValue);

使用数字格式字符串显示任意数量的小数位数:

sw.WriteLine("( {0:N2}, {1:N2} )", xValue, yValue);

您可以将舍入作为输出格式的一部分,而不是对值进行舍入(您可能不想这样做(:

WriteLine("{0:0.00}", value)