2016-01-06 5 views
1

У меня есть простая математическая проблема в javascript, которую я не могу решить.javascript простой математический выпуск

var prodajna_avg = parseFloat(vpc - (vpc * (rab_avg/100))).toFixed(2); 
var nabavna = parseFloat(<?php echo "$nabavna_cijena"; ?>); 
document.getElementById("brutto_avg").textContent = parseFloat(prodajna_avg - nabavna); 

Проблема в строке три. Я не получаю правильную сумму, и я не знаю, почему. В первом ряду сумма составляет 5,624,17, а вторая строка - 3,904,54. Третья строка по какой-то причине возвращает 5.620,19, тогда как она должна быть 1,719,63.

Вы можете мне помочь? Я изучаю javascript, поэтому для меня это проблема.

Спасибо.

+0

Функция 'toFixed' преобразует число в строку, так что это может быть причиной. – Rames

+0

Что произойдет, если вы измените количество строк на «5,624,17» и «3,904,54»? Может быть, это смущает то, что использовать десятичный разделитель. – Kevin

+0

[Отлично работает для меня] (https://jsfiddle.net/skhrqp2v/2/). Что-то еще должно продолжаться. –

ответ

2

Убедитесь, что $nabavna_cijena был правильно отформатирован.

var nabavna = parseFloat("3.904,54"); // --> nabavna == 3.904 
var nabavna = parseFloat("3,904.54"); // --> nabavna == 3 
var nabavna = parseFloat("3904.54"); // --> nabavna == 3904.54 

parseFloat() Функция требует, чтобы десятичной точки . и это не позволяет групповой разделитель.

+0

В этом была проблема! Большое спасибо! – Budimir