我有下面的代码:
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)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |