要显示货币,我们这样做:
ToString("0.##")
对于价值5.00
,输出是:
5
对于价值5.98
,输出是:
5.98
对于价值5.90
,输出是:
5.9
我需要第三种情况得出 2 个小数点,例如:
5.90
我怎样才能做到这一点而不影响其他结果?
尝试:
value.ToString("#,##0.00")
要不就:
value.ToString("C")
我知道只有当两者都不为零时,才能扩展所有小数点后两位的内置方法。可能会为此使用一个if
声明。
if (s.EndsWith(".00"))
s = s.Substring(0, s.Length - 3);
我知道这并没有为您提供解决问题的格式,但它是解决问题的简单解决方案。
(5.00).ToString("0.00").Replace(".00",""); // returns 5
(5.90).ToString("0.00").Replace(".00", ""); // returns 5.90
(5.99).ToString("0.00").Replace(".00", ""); // returns 5.99
您可以使用扩展方法,如下所示:
public static string ToCurrencyString(this decimal d)
{
decimal t = Decimal.Truncate(d);
return d.Equals(t) ? d.ToString("0.##") : d.ToString("#, ##0.00")
}
#
表示如果没有数字则留空 0 表示如果没有数字则输入 0
ToString("0.00")
不知道我是否遗漏了什么,但你不能这样做:
decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
只需使用myDecimal.ToString("N")
,
使用“N”参数会将小数转换为字符串,显示的小数位数将由您的 SO 设置定义。