字符串.格式无法正常工作

本文关键字:工作 常工作 格式 字符串 | 更新日期: 2023-09-27 18:00:46

我有以下代码:

private string Do2Decimal(string value)
{
    return String.Format("{0:0.##}", value);
}

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

我在这里犯了什么错误??

更新:我有字符串格式的值,即:"16.32222"。
抱歉之前忘了提。

字符串.格式无法正常工作

因为您正在传递一个字符串值。这种格式适用于浮点数/小数。只需根据您的要求将数字解析为十进制/双精度类型,如:

String.Format("{0:0.##}", decimal.Parse(value));

您还可以使用decimal.TryParse(或TryParse)族方法进行更安全的解析。您也可以修改您的方法以接收十进制/双精度类型参数,然后应用格式。这将传达一个更好的意图,IMO.

如果您的字符串将.作为NumberDecimalSeparator,而您的区域性不支持.作为NumberdecimalSeparater,则您可以在解析时传递CultureInfo.InvariantCulture,如:

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

试试这个

String.Format("{0:0.00}", decimal.Parse(value));

以获得点后的两个degit值。