Прямо сейчас у меня есть
double numba = 5212.6312 String.Format("{0:C}", Convert.ToInt32(numba) )
Это даст мне
$5,213.00
но я не хочу ".00".
Я знаю, что могу просто бросать последние три символа строки каждый раз, чтобы добиться эффекта, но, похоже, должен быть более простой способ.
Первый - не хранить валюту в double - вместо этого используйте decimal. Каждый раз. Затем используйте "C0" в качестве спецификатора формата:
double
decimal
decimal numba = 5212.6312M; string s = numba.ToString("C0");
Это должно сделать работу:
String.Format("{0:C0}", Convert.ToInt32(numba))
Число после C указывает количество включаемых десятичных знаков.
C
Я подозреваю, что вы действительно хотите использовать тип decimal для хранения таких чисел.
Console.WriteLine(numba.ToString("C0"));
Я думаю, что правильный путь для достижения вашей цели заключается в следующем:
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;
и только после этого вы должны выполнить вызов Format:
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
нажмите, чтобы увидеть экран Console Out Put
Надеюсь, это поможет вам ...
Спасибо. :)
просто: numba.ToString("C2")
numba.ToString("C2")
больше @ http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString