Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не верно происходит сложение (https://javascript.ru/forum/misc/82955-ne-verno-proiskhodit-slozhenie.html)

chester 12.08.2021 16:45

Не верно происходит сложение
 
Здраствуйте уважаемые форумчане. Нужно было на работе подпилить чуть сайт, пока наш разработчик в отпуске, в результате возникла проблема. Необходимо сложить две переменных, а результат получается странный. Вот код:
var a = 3,5263243683782
var b = 35,126324368378
var x = parseFloat(a)+parseFloat(b);
document.getElementById("MathResult").innerHTML = x.toFixed(2);


должен по логике быть результат 38.66, а мне выдает 38.00
=====
есть подозрение, что это происходит, потому что после целого числа стоит запятая, а не точка. Но данные передаются из базы, с помощью запроса на РНР и отдаются из базы в таком виде.

ksa 12.08.2021 17:05

Цитата:

Сообщение от chester
a = 3,5263243683782

Это вообще не цифра для JS... И не строка...
Uncaught SyntaxError: Unexpected number

chester 12.08.2021 17:08

Цитата:

Сообщение от ksa (Сообщение 539345)
Это вообще не цифра для JS... И не строка...
Uncaught SyntaxError: Unexpected number

Да я понял уже. при замене запятой на точку - все работает. Теперь осталось разобраться почему php в данном случае возвращает ответом на запрос десятичную дробь с запятой. Всю жизнь было с точкой, насколько я знаю.

ksa 12.08.2021 17:08

Как вариант...
<p id='MathResult'></p>
<script>
var a = '3,5263243683782'.replace(',', '.')
var b = '35,126324368378'.replace(',', '.')
var x = parseFloat(a) + parseFloat(b);
document.getElementById("MathResult").innerHTML = x.toFixed(2);
</script>

chester 12.08.2021 17:26

Да, спасибо, все заработало.


Часовой пояс GMT +3, время: 21:48.