2016-06-18 4 views
-1

Я пытаюсь добавить +20,2 в эту сумму с точки 9990.95 или эта сумма с запятой 9990,95 с JS или JQueryВычислить (сложите) с точки/запятой

<span class="sum">9990.95</span> 

var price = $('.sum').text(), 
    calc = parseInt(price, 10) + 20, 
    total = calc.toFixed(2); 

Возвращение мне 9990 без десятичной

Я попытался, как это слишком

var price = $('.sum').text(), 
    calc = 20, 
    total = price + calc; 

выход был 9990.9920, который не является правильным либо.

Есть ли способ, как это сделать?

+1

Откуда вы знаете, что он возвращает '9990'? И вы ищете функцию 'parseFloat'. – undefined

+0

Возможный дубликат [Как преобразовать строку в float в javascript?] (Http://stackoverflow.com/questions/642650/how-to-convert-string-into-float-in-javascript) Пожалуйста, ищите в следующий раз. – nicael

ответ

2

parseInt делает именно то, что говорит этикетка - разбор строки целому числу. По определению целые числа не имеют десятичных знаков.

Вместо use parseFloat:

calc = parseFloat(price) + 20, 
+3

Или просто 'calc = + price + 20'. – nicael

1

Я думаю, что OP ищет способ синтаксического анализа чисел с точки или запятой в качестве десятичного разделителя в плавающей точкой Number:

let parseDecimalPoint = Number.parseFloat; 
 
    parseDecimalComma = str => Number.parseFloat(str.replace('.', '').replace(',', '.')) 
 

 
console.log(parseDecimalComma("+20,2") + parseDecimalComma("9990,95")); 
 
console.log(parseDecimalComma("+20,2") + parseDecimalPoint("9990.95"));

См. Также Javascript parse float is ignoring the decimals after my comma

Смежные вопросы