String.Format无法正常工作

Aja*_*jay 1 c# asp.net

我有下面的代码:

private string Do2Decimal(string value)
{
    return String.Format("{0:0.##}", value);
}
Run Code Online (Sandbox Code Playgroud)

这里我传递字符串值为16.32222.
我所知道的是,上面的代码应该将我的值格式化为16.32.
但它显示的输出值为16.32222.

我在这做什么错?

更新:我的字符串格式为:"16.32222".
对不起忘了以前提过.

Hab*_*bib 18

因为您传递的是字符串值.格式化适用于浮点数/小数.只需根据您的要求将数字解析为十进制/双精度类型:

String.Format("{0:0.##}", decimal.Parse(value));
Run Code Online (Sandbox Code Playgroud)

您还可以使用(或TryParse)系列方法进行更安全的解析.您还可以修改方法以接收decimal/double类型参数,然后应用格式.它将传达一个更好的意图,IMO.decimal.TryParse

如果你的字符串中有.作为NumberDecimalSeparator 和你的文化不支持.作为NumberDecimalSeparator那么你可以通过CultureInfo.InvariantCulture在解析,如:

string value = "16.322222";
string formattedString = String.Format("{0:0.##}", decimal.Parse(value, CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)