Использование чисел с запятыми из текста для умножения - PullRequest
0 голосов
/ 05 мая 2020

Мне нужно умножить значения из двух входов и поместить результат в другой вход. В результате нужны запятые, но для умножения на JavaScript мне нужно удалить запятые из входов 1 и 2. До этого я пробовал использовать метод replace (). Я включил свои HTML и JS ниже.

HTML

<div>
<input id="input1" type="text" />
<input id="input2" type="text" />
<input id="input3" type="text" />
</div>

JS

$(document).on("input", "#input1, #input2", function () {
    var val1 = parseFloat($("#input1").val());
    var val2 = parseFloat($("#input2").val());
    var total = val1 * val2;
    $("#input3").val(total).trigger("input");
});

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Сначала преобразуйте строковое значение в input1 и input2 в число с плавающей запятой, удалив из него запятые.

Во-вторых, выполняйте математические вычисления, как хотите.

В-третьих, преобразуйте результаты обратно в строку, а затем отформатируйте ее с помощью запятых.

Обратитесь:

Удалите запятые из строки: { ссылка }

Форматирование числа с использованием запятых в качестве разделителей тысяч: { ссылка }

$(document).on("input", "#input1, #input2", function() {
  var val1 = parseFloat($("#input1").val().replace(/,/g, ''));
  var val2 = parseFloat($("#input2").val().replace(/,/g, ''));
  var total = val1 * val2;
  total = total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  $("#input3").val(total);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <input id="input1" type="text" />
  <input id="input2" type="text" />
  <input id="input3" type="text" />
</div>
0 голосов
/ 05 мая 2020

Первое, что приходит в голову, - это преобразовать вывод в строку и периодически добавлять запятые. Вот пример кода (где num - отображаемое число):

var str = num + "";
var output = "";

for (var i = 0; i < str.length; i++) {
    output += str[i];
    if ((str.length - i - 1) % 3 == 0 && i < str.length - 1)
        output += ",";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...