双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(".", "");
我该怎么做?
使用格式字符串:
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)