我有这个:
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(".", "");
我将如何做到这一点?
答案 0 :(得分:6)
使用格式字符串:
sw.WriteLine("( {0:0.00}, {1:0.00} )", xValue, yValue);
有关文档,请查看Standard Numeric Format Strings。 String.Format
和TextWriter.WriteLine
公开了相同的格式选项。
答案 1 :(得分:3)
此链接中的第一组示例:
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
答案 2 :(得分:2)
这个尾随零与数字本身无关,而是与其表示无关。因此,如果您想要显示它,则无需更改数字 - 使用字符串格式:
sw.WriteLine("( {0:0.00}, {1:0.00} )", xValue, yValue);
答案 3 :(得分:1)
使用numeric format string显示任意数量的小数位:
sw.WriteLine("( {0:N2}, {1:N2} )", xValue, yValue);
答案 4 :(得分:1)
除了舍入您可能不想做的值之外,您可以像输出格式的一部分那样进行舍入:
WriteLine("{0:0.00}", value)