字符串.格式无法正常工作
本文关键字:工作 常工作 格式 字符串 | 更新日期: 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值。