Как мне отформатировать двойную валюту с округлением до ближайшего доллара? - PullRequest
59 голосов
/ 21 мая 2009

Прямо сейчас у меня есть

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

Это даст мне

$5,213.00

но я не хочу ".00".

Я знаю, что могу просто бросать последние три символа строки каждый раз, чтобы добиться эффекта, но, похоже, должен быть более простой способ.

Ответы [ 6 ]

92 голосов
/ 21 мая 2009

Первый - не хранить валюту в double - вместо этого используйте decimal. Каждый раз. Затем используйте "C0" в качестве спецификатора формата:

decimal numba = 5212.6312M;
string s = numba.ToString("C0");
24 голосов
/ 21 мая 2009

Это должно сделать работу:

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

Число после C указывает количество включаемых десятичных знаков.

Я подозреваю, что вы действительно хотите использовать тип decimal для хранения таких чисел.

5 голосов
/ 21 мая 2009
Console.WriteLine(numba.ToString("C0"));
3 голосов
/ 16 июня 2009

Я думаю, что правильный путь для достижения вашей цели заключается в следующем:

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

и только после этого вы должны выполнить вызов Format:

String.Format("{0:C0}", numba) 
2 голосов
/ 25 июля 2016
 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

Надеюсь, это поможет вам ...

Спасибо. :)

0 голосов
/ 26 сентября 2014
...