C #: форматирование строки значения цены - PullRequest
9 голосов
/ 17 июля 2009

в C #, у меня двойная переменная цена со значением 10215.24. Я хочу показать цену через запятую после нескольких цифр. Мой ожидаемый результат - 10 215,24

Ответы [ 6 ]

26 голосов
/ 17 июля 2009
myPrice.ToString("N2");

в зависимости от того, что вы хотите, вы также можете отобразить символ валюты:

myPrice.ToString("C2");

(Число после C или N указывает, сколько десятичных знаков следует использовать). (C форматирует число как строку валюты, которая включает символ валюты)

Чтобы быть полностью политкорректным, вы также можете указать CultureInfo, который следует использовать.

17 голосов
/ 17 июля 2009

Я думаю, что это должно сделать это:

String.Format("{0:C}", doubleVar);

Если вам не нужен символ валюты, просто сделайте это:

String.Format("{0:N2}", doubleVar);
6 голосов
/ 17 июля 2009

В качестве примечания я бы порекомендовал изучить тип десятичной дроби для валюты. Он позволяет избежать ошибок округления, которые чумы плавающие, но в отличие от Integer, он может иметь цифры после десятичной точки.

5 голосов
/ 17 июля 2009

Просмотрите строки формата , в частности "C" или "N".

double price = 1234.25;
string FormattedPrice = price.ToString("N"); // 1,234.25
1 голос
/ 06 января 2010

Это может помочь

    String.Format("{#,##0.00}", 1243.50); // Outputs “1,243.50″

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // Outputs “$1,243.50″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -1243.50); // Outputs “($1,243.50)″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // Outputs “Zero″ 
0 голосов
/ 05 марта 2014

То, что вы хотите, это "N2".

Вот пример:

double dPrice = 29.999988887777666655554444333322221111; 
string sPrice = "£" + dPrice.ToString("N2"); 

Возможно, вам даже понравится:

string sPrice = "";

if(dPrice < 1)
{
    sPrice = ((int)(dPrice * 100)) + "p";

} else
{
    sPrice = "£" + dPrice.ToString("N2");

} 

, что хорошо сгущается до этого:

string sPrice = dPrice < 1 ? ((int)(dPrice * 100)).ToString("N0") + "p" : "£" + dPrice.ToString("N2"); 

Дополнительная информация по адресу msdn.microsoft.com / en-us / library / fht0f5be.aspx для различных других типов форматирования

...