c#十进制为货币字符串
要显示我们所做的货币:
ToString("0.##")
对于值5.00
,输出为:
5
对于值5.98
,输出为:
5.98
对于值5.90
,输出为:
5.9
我需要第三种情况才能得到2个小数点,例如:
5.90
如果不影响其他结果我怎么能这样做?
我知道这不会给你一个解决问题的格式,但它是一个简单的解决方案来解决它。
(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") }
尝试:
s.ToString("#,##0.00")
要不就:
s.ToString("C")
我知道没有内置的方法来扩展所有两个小数位,只有当两者都不为零时。 可能只是使用if
语句。
int len = s.Length; if (s[len - 2] == '0' && s[len - 1] == '0') s = s.Left(len - 3);
#
表示如果没有数字则将其保留为空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设置定义。