Javascript форматировать число в C # - PullRequest
0 голосов
/ 31 мая 2011

У меня есть число, которое в настоящее время составляет 1 657 108 700 и продолжает расти.Однако я хочу, чтобы он отображался как 1 657 108 k

. Есть ли в javascript или html встроенная функция для этого?

Значение устанавливается через javascript в поле span в html.

[edit]

Из комментария я получил свой метод до сих порas:

var start = '1,657,108,700';                
start = (start / 1000).toFixed(0);                                      
var finish = '';
while (start.length > 3)
{       
    finish = ','.concat(start.substring(start.length - 3, 3), finish);      
    start = start.substring(0, start.length - 3);
};
finish = start + finish + "k";
return finish;

однако это возвращает 1,65,7k вместо 1,657,108k .. кто-нибудь знает почему?

1 Ответ

1 голос
/ 31 мая 2011
var formattedNumber = Math.round(yourNumber / 1000).toLocaleString() + "k";

Превратить вышеперечисленное в функцию или нет, если это необходимо.Я не знаю ни одной функции для этого или способа обслуживания неанглийских версий «k» (при условии, что они есть), но по крайней мере toLocaleString() должен заботиться о запятой против полной точки дляпроблема тысяч.

ОБНОВЛЕНИЕ: я отправил вышеупомянутое, не проверяя это;когда я попробовал это, я обнаружил, что toLocaleString () отформатировал 1234 как 1234.00.Я думал об исправлении с помощью замены регулярных выражений для удаления конечных нулей, за исключением, конечно, я не могу быть уверен, какой символ toLocaleString () будет использовать для десятичной точки, так что это не будет работать.Я думаю, вы могли бы написать некоторый код, который использует toLocaleString () для «контрольного» числа (например, 1.1), чтобы увидеть во время выполнения, какой символ он использует для десятичного числа.

ОБНОВЛЕНИЕ 2 для вашего обновленного вопроса, вставивзапятые вручную, я сделал это так:

var unformattedNumber = 123456;
var a = unformattedNumber.toString().split("");
for (var i=a.length-3; i >0; i-=3)
   a.splice(i,0,",");
var formattedNumber = a.join("") + "k";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...