Tom*_*len 18 c# currency decimal tostring
要显示我们所做的货币:
ToString("0.##")
Run Code Online (Sandbox Code Playgroud)
对于值5.00,输出为:
5
Run Code Online (Sandbox Code Playgroud)
对于值5.98,输出为:
5.98
Run Code Online (Sandbox Code Playgroud)
对于值5.90,输出为:
5.9
Run Code Online (Sandbox Code Playgroud)
我需要第三种情况才能得出2个小数点,例如:
5.90
Run Code Online (Sandbox Code Playgroud)
如果不影响其他结果我怎么能这样做?
Zac*_*ary 18
我知道这不会给你一个解决问题的格式,但它是一个解决它的简单解决方案.
(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
Run Code Online (Sandbox Code Playgroud)
Jon*_*ood 16
尝试:
s.ToString("#,##0.00")
Run Code Online (Sandbox Code Playgroud)
要不就:
s.ToString("C")
Run Code Online (Sandbox Code Playgroud)
我知道没有内置的方法来扩展所有两个小数位,只有当两者都不为零时.可能只是使用一个if声明.
int len = s.Length;
if (s[len - 2] == '0' && s[len - 1] == '0')
s = s.Left(len - 3);
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以使用扩展方法,如下所示:
public static string ToCurrencyString(this decimal d)
{
decimal t = Decimal.Truncate(d);
return d.Equals(t) ? d.ToString("0.##") : d.ToString("#, ##0.00")
}
Run Code Online (Sandbox Code Playgroud)