在 C# 中舍入和格式化可为空的小数
Rounding and formatting the nullable decimal in c#
我使用下面的代码将小数点四舍五入到小数点后两位。
decimal? RTime = RTime.HasValue ? Decimal.Round(RTime.Value, 2) : 0;
但是转换数字如 512->512.00 不起作用..我该怎么做?
Decimal.Round
四舍五入小数的值。例如 512.123
到 512.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}"
我认为您混淆了舍入和格式设置。
- 你正在做的是四舍五入并且它有效。
- 您期望的是格式化,即。它在屏幕上的显示方式。为此,您应该使用具有相应格式的 .ToString() 方法。
我使用下面的代码将小数点四舍五入到小数点后两位。
decimal? RTime = RTime.HasValue ? Decimal.Round(RTime.Value, 2) : 0;
但是转换数字如 512->512.00 不起作用..我该怎么做?
Decimal.Round
四舍五入小数的值。例如 512.123
到 512.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}"
我认为您混淆了舍入和格式设置。
- 你正在做的是四舍五入并且它有效。
- 您期望的是格式化,即。它在屏幕上的显示方式。为此,您应该使用具有相应格式的 .ToString() 方法。