我对此行有格式化问题:
Decimal amount = Convert.ToDecimal(String.Format("{0:.##}", doubleAmount));
Run Code Online (Sandbox Code Playgroud)
如果doubleAmount为0.0,则抛出格式异常.我该如何处理0.0?
问题是格式字符串将{0:.##}0格式化为空字符串,但空字符串不是有效参数Convert.ToDecimal.为了避免可能的FormatException,您可以使用{0:0.##}格式0作为0.
(用户sasfrog建议{0:#.##},但由于这也将0格式化为空字符串,它不起作用.)
但是,如果您只是尝试将Double值舍入到两个小数位并将结果存储在Decimal变量中,那么您应该使用
Decimal amount = Decimal.Round((Decimal)doubleAmount, 2, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)
并跳过字符串格式化和解析的不必要开销.
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |