如何将货币格式化为近似美元?

现在我有

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

这会给我

 $5,213.00 

但我不想要“.00”。

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

首先 – 不要把货币保留在一个double使用decimal 。 每次。 然后使用“C0”作为格式说明符:

 decimal numba = 5212.6312M; string s = numba.ToString("C0"); 

这应该做的工作:

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

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

我怀疑你真的想用decimaltypes来存储这样的数字。

 Console.WriteLine(numba.ToString("C0")); 

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

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

只有这样你才能做格式调用:

 String.Format("{0:C0}", numba) 
  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 

点击查看控制台输出屏幕

希望这可以帮助你…

谢谢。 🙂

简单: numba.ToString("C2")

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