舍入并格式化c#中的可空小数

时间:2016-04-19 07:50:52

标签: c# format rounding

我使用以下代码将小数舍入为2位小数。

  decimal? RTime = RTime.HasValue ? Decimal.Round(RTime.Value, 2) : 0;

但转换数字像512-> 512.00无法正常工作。我该怎么做?

2 个答案:

答案 0 :(得分:2)

Decimal.Round 舍入小数的值。例如512.123512.12

您想要的是字符串表示。您需要格式化值而不是舍入。您可以使用ToString()

decimal? RTime = RTime.HasValue ? Decimal.Round(RTime.Value, 2) : 0;
string RTimeAsString = RTime.Value.ToString("0.00");

string.Format或字符串插值如下:

string RTimeAsString = string.Format("{0:0.00}", RTime);
string RTimeAsString = $"{RTime:0.00}"

答案 1 :(得分:2)

我认为你混淆了舍入和格式化。

  • 你正在做的是四舍五入,它有效。
  • 您期望的是格式化,即。它在屏幕上的显示方式。为此,您应该使用具有相应格式的.ToString()方法。