Как отформатировать число 1000 как «1 000» - PullRequest
29 голосов
/ 23 июня 2011

Мне нужен способ форматирования чисел. Я сохранил некоторые цифры в своей таблице БД, например, 12500, и хотел бы напечатать их в этом формате 12 500 (таким образом, каждые 3 цифры есть пробел). Есть ли элегантный способ сделать это?

Ответы [ 12 ]

0 голосов
/ 22 мая 2015

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

amt = 1234567890.12
f_amt = format("$%.2f",amt)
i = f_amt.index(".")
while i > 4
  f_amt[i-3]=","+f_amt[i-3]
  i = f_amt.index(",")
end

f_amt
=> "$1,234,567,890.12"

Это может быть параметризовано для форматирования других валют.

0 голосов
/ 23 августа 2012

Я знаю, что это старый вопрос, но.

почему бы просто не использовать подстроку подстановки.

в псевдокоде ....

String numberAsString = convertNumberToString(123456);
int numLength = V.length;//determine length of string

String separatedWithSpaces = null;

for(int i=1; i<=numlength; i++){//loop over the number
separatedWithSpaces += numberAsString.getCharacterAtPosition(i);
    if(i.mod(3)){//test to see if i when devided by 3 in an integer modulo,
    separatedWithSpaces += " ";

    }//end if

}//end loop

Я знаю, что это не в каком-то конкретном языке, но, надеюсь, вы поняли идею.

Дэвид

...