2010-06-15 2 views
3

Я хотел бы форматировать значения так, чтобы значение 20000 отображалось как $ 20k и так далее. Каким будет формат C#?Строка формата: от 20000 до 20 000 долларов?

+0

Как вы собираетесь показывать 1, 10, 999, 1000 , 20100, 1000000? Существует множество случаев, когда вы должны указать, чтобы вопрос был точно ответственным. –

+0

Я думаю, вам нужно дать более подробную информацию. Как он отобразит 20001? Что насчет 500? Или 2020000? Вы в основном округляете тысячи, миллионы, миллиарды и показываете номер с письмом после него? – bwarner

+1

C# не поддерживает формат _have_. Предполагаю, вы спрашиваете о .NET? –

ответ

4

Я думаю, что вам нужно, чтобы написать свою собственную функцию, чтобы разделить на 1000

var culture = CultureInfo.GetCultureInfo("en-US"); 
int amount = 20000/1000; 
var amountString = string.Format(culture, "{0:C}K", amount); 
Console.WriteLine(amountString); // $20.00 
1
static void Main(string[] args) 
     { 
      int val = 20000; 
      string currency = string.Format("Total: {0}",ToKdisplay (val)); 
     } 

     private static string ToKdisplay(int val) 
     { 
      string result = ""; 
      result = val > 1000 ? string.Format("${0}K", val/1000) : string.Format("${0}", val); 
      return result; 
     } 
6
double amount = 20000; 
string formatted = string.Format("${0:0,.0}K", amount); 
+0

Строка интерполирована: '$" $ {amount: 0, .0} K " – orad

1

Я пытаюсь сделать нечто подобное, но не может использовать ToString («формат») синтаксис в моем случае. Это могло бы помочь другим, хотя:

http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierTh

double value = 1234567890; 
Console.WriteLine(value.ToString("#,##0,,", CultureInfo.InvariantCulture)); 
// Displays 1,235 

Для миллионов ... тысяч было бы что-то вроде ...

Console.WriteLine(value.ToString("#,##0,", CultureInfo.InvariantCulture)); 
Смежные вопросы