Javascript calcul не работает, если число превышает 1000

Я пытаюсь вычислить простое деление в javascript, но если мое число < 1000, результат не очень хороший.

Вот мой код:

var cal = parseFloat(currentAmount.toString()) / parseFloat(currencyArray[i][j].toString())

если currencyArray[i][j] равно 1,3703 а также currentAmount = 100 мой результат хорош (72.98)но если я положу 1000 мой результат не очень хороший (0.7298... )

2 ответа

Решение

Из-за конкретной ценности, которую вы получаете, я собираюсь догадаться, что ваш currentAmount не 1000 как вы утверждаете, а скорее 1,000 или же 1 000 или даже 1'000 в некоторых странах. когда parseFloat овладевает этим, видит только 1 так как , недопустимый символ в числах. 1 / 1.3703 является 0.7298...,

Числа не должны иметь разделителей тысяч, а десятичные дроби должны быть точкой. (Как человек, выросший во Франции, я знаю, что это может сбить с толку!)

ОК, собираюсь сделать дикое предположение.

Похоже, вы имеете дело с числами в виде строк, с плохим форматированием и у вас есть "1 000" или же "1,000" и вы хотите, чтобы это было проанализировано как 1000, Ваша проблема в том, что

parseFloat("1 000")

дает

1

В этом случае удалите пробелы:

var currentAmountAsNumber = parseFloat(currentAmount.toString().replace(/[ ,]/g,''))

Но наличие контрольного примера, вероятно, позволило бы нам упростить это.

Другие вопросы по тегам