Подтвердить что ты не робот

Javascript: простой способ форматирования чисел?

Я пытаюсь отформатировать различные цифры на моей странице. Эти цифры представляют собой цену, изменение цены или процент. Я знаю, что Javascript имеет функции для ограничения количества десятичных знаков, но есть ли поддержка для других типов форматирования, таких как группировка чисел запятыми, контроль того, отображается ли +/- и т.д.? Вот что я до сих пор:

var FORMATTER = {
    price       : function(value) { return '$' + value.toFixed(2); },
    pricePer    : function(value) { return (value * 100).toFixed(2) + '%'; },
    priceChg    : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); }
};

Он работает нормально, но он хотел бы добавить запятые в форматте "цена", и вы можете увидеть, что там взломает форматтер "priceChg", где я пытаюсь переместить знак +/- перед Знак $.

В принципе, я надеюсь, что есть некоторая библиотека (jQuery в порядке), которая эмулирует класс Java DecimalFormat.

4b9b3361

Ответ 1

Там плагин NUMBERFORMATTER jQuery, подробности ниже:

https://code.google.com/p/jquery-numberformatter/

Из приведенной выше ссылки:

Этот плагин является NumberFormatter плагин. Вероятно, форматирование номера знакомый всем, кто работал с серверный код, такой как Java или PHP, и который работал с интернационализация.

EDIT: заменил ссылку на более прямой.

Ответ 2

Нет, нет встроенной поддержки форматирования чисел, но в googling будут загружены фрагменты кода, которые сделают это для вас.

EDIT: Я пропустил последнее предложение вашего сообщения. Попробуйте http://code.google.com/p/jquery-utils/wiki/StringFormat для решения jQuery.

Ответ 3

Только что закончил библиотеку js для форматирования чисел Numeral.js. Он обрабатывает десятичные знаки, доллары, проценты и даже форматирование времени.

Ответ 4

Также попробуйте dojo.number, который имеет встроенную поддержку локализации. Это гораздо более близкий аналог Java NumberFormat/DecimalFormat