double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba))
这会给我
$5,213.00
,但我不希望” .00" 。
我知道我可以每次放弃字符串的最后三个字符来达到效果,但似乎应该有一个更简单的方法。
double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba))
这会给我
$5,213.00
,但我不希望” .00" 。
我知道我可以每次放弃字符串的最后三个字符来达到效果,但似乎应该有一个更简单的方法。
首先 - 不要将货币保留在double
- 使用decimal
代替。每次。然后使用“C0”的格式说明:
decimal numba = 5212.6312M;
string s = numba.ToString("C0");
没有浮点实际上应该用作货币字段。以美分/便士/最低允许货币单位存储的整数是避免舍入错误的唯一方法(如果您需要超出长整数范围的数字,则为BigInt库:)) – workmad3 2009-05-20 20:39:43
Console.WriteLine(numba.ToString("C0"));
我想实现自己的目标,正确的方式是这样的:
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;
然后才是你应该做的格式调用:
String.Format("{0:C0}", numba)
简单:numba.ToString("C2")
更多@http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString
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
click to see Console Out Put screen
希望这可以帮助你......
感谢。 :)
numba是一个错误的变量名称...多一个字符会给你“数字” – 2009-05-20 20:40:45
奥马尔是正确的,但是“数字”也是一个变量的废话名称。 – 2009-05-20 20:45:54