64

现在我有

double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba) )

这会给我

$5,213.00

但我不想要“.00”。

我知道我可以每次都删除字符串的最后三个字符来达到效果,但似乎应该有一个更简单的方法。

4

6 回答 6

98

首先 - 不要将货币保存在 a double- 使用 adecimal代替。每次。然后使用“C0”作为格式说明符:

decimal numba = 5212.6312M;
string s = numba.ToString("C0");
于 2009-05-20T20:36:48.980 回答
24

这应该做的工作:

String.Format("{0:C0}", Convert.ToInt32(numba))

后面的数字C指定要包含的小数位数。

但是,我怀疑您确实想使用该decimal类型来存储此类数字。

于 2009-05-20T20:41:45.710 回答
5
Console.WriteLine(numba.ToString("C0"));
于 2009-05-20T20:39:29.457 回答
3

我认为实现目标的正确方法是:

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;

只有这样你才应该进行 Format 调用:

String.Format("{0:C0}", numba) 
于 2009-06-16T10:31:36.733 回答
3
 decimal value = 0.00M;
        value = Convert.ToDecimal(12345.12345);
        Console.WriteLine(".ToString(\"C\") Formates With Currency $ Sign");
        Console.WriteLine(value.ToString("C"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C1"));
        //OutPut : $12345.1
        Console.WriteLine(value.ToString("C2"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C3"));
        //OutPut : $12345.123
        Console.WriteLine(value.ToString("C4"));
        //OutPut : $12345.1235
        Console.WriteLine(value.ToString("C5"));
        //OutPut : $12345.12345
        Console.WriteLine(value.ToString("C6"));
        //OutPut : $12345.123450

点击查看控制台输出屏幕

希望这可以帮助你...

谢谢。:)

于 2016-07-25T11:00:37.897 回答
0

简单的:numba.ToString("C2")

更多 @ http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString

于 2014-09-26T14:39:25.977 回答