繁体   English   中英

在 C# 中舍入和格式化可为空的小数

[英]Rounding and formatting the nullable decimal in c#

我使用下面的代码将小数点四舍五入到小数点后两位。

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

但是转换 numberlike 512->512.00 不起作用..我该怎么做?

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}"

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM