Отформатировать значение меньше 1.00 с {0: C}? - PullRequest
2 голосов
/ 03 марта 2010

Если мне вернули значение 0,0042 и я передал его:

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

Он отображает $ 0 как результаты, когда я хочу, чтобы он действительно отображался:

$ 0,0042

Ответы [ 3 ]

8 голосов
/ 03 марта 2010

"C" - это строка формата валюты по умолчанию, которая всегда усекает ваш номер до двух десятичных знаков. Вам нужно указать количество десятичных знаков, если вы имеете дело с крошечными долями цента.

Попробуйте

string.Format("{0:C4}",....);

Дополнительные параметры форматирования валюты можно найти здесь .

3 голосов
/ 03 марта 2010
string.Format("{0:C4}",....);
0 голосов
/ 24 июля 2013

Простите за некромантию вопроса, но для любого, кто читает это сегодня, вот строка нестандартного формата, которую мы используем. Он соответствует стандартному формату "C" для валюты США, за исключением того, что при желании он может показывать третье или четвертое десятичное место. Это должно отлично работать для форматирования денежной стоимости SQL Server с долями процента.

// String.Format() example
string.Format("{0:$#,0.00##;($#,0.00##);$\0\.\0\0}", someDecimalValue)
// Decimal.ToString() example
someDecimalValue.ToString("$#,0.00##;($#,0.00##);$\0\.\0\0")

Поскольку он не использует стандартный формат "C", он не чувствителен к локали. Особое внимание следует уделить приложениям, которые требуют интернационализации.

...