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,''))
Но наличие контрольного примера, вероятно, позволило бы нам упростить это.