Форматирование валюты в JavaScript
Возможный дубликат:
Как я могу форматировать числа как деньги в JavaScript?
У меня есть форма с простым JavaScript для выполнения мгновенного расчета. Моя проблема в том, что я изо всех сил пытаюсь отформатировать ее так, чтобы она отображалась правильно с запятыми и двумя десятичными знаками.
Любая помощь будет очень оценена. Спасибо.
<p>
<label>My Daily Rate is:</label><br />
<input class="poundsBox" name="shares" id="shares" type="text" /><br />
<br />
<strong>Your Gross Contract Take Home:</strong></p>
<p><span class="result">£ <span id="result"></span></span></p>
The above illustration is provided for guidance only. Please complete the request form below for a detailed personal illustration.
<script type="text/javascript">
$("#shares").keyup(function() {
var val = parseFloat($(this).val());
// If val is a good float, multiply by 260, else show an error
val = (val ? val * 260 * 0.88 : "Invalid number");
$("#result").text(val);
})
</script>
Ответы
Ответ 1
Вы можете использовать стандартный метод JS toFixed
var num = 5.56789;
var n=num.toFixed(2);
//5.57
Чтобы добавить запятые (для разделения 1000), вы можете добавить regexp следующим образом (где num
- число):
num.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
//100000 => 100,000
//8000 => 8,000
//1000000 => 1,000,000
Полный пример:
var value = 1250.223;
var num = '$' + value.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
//document.write(num) would write value as follows: $1,250.22
Характер разделения зависит от страны и региона. Для некоторых стран может потребоваться .
Ответ 2
Вы можете использовать методы toPrecision() и toFixed() типа Number. Проверьте эту ссылку Как я могу форматировать числа как деньги в JavaScript?