Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2021, 16:45
Новичок на форуме
Отправить личное сообщение для chester Посмотреть профиль Найти все сообщения от chester
 
Регистрация: 11.11.2010
Сообщений: 7

Не верно происходит сложение
Здраствуйте уважаемые форумчане. Нужно было на работе подпилить чуть сайт, пока наш разработчик в отпуске, в результате возникла проблема. Необходимо сложить две переменных, а результат получается странный. Вот код:
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
=====
есть подозрение, что это происходит, потому что после целого числа стоит запятая, а не точка. Но данные передаются из базы, с помощью запроса на РНР и отдаются из базы в таком виде.

Последний раз редактировалось chester, 12.08.2021 в 16:49.
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2021, 17:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от chester
a = 3,5263243683782
Это вообще не цифра для JS... И не строка...
Uncaught SyntaxError: Unexpected number
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2021, 17:08
Новичок на форуме
Отправить личное сообщение для chester Посмотреть профиль Найти все сообщения от chester
 
Регистрация: 11.11.2010
Сообщений: 7

Сообщение от ksa Посмотреть сообщение
Это вообще не цифра для JS... И не строка...
Uncaught SyntaxError: Unexpected number
Да я понял уже. при замене запятой на точку - все работает. Теперь осталось разобраться почему php в данном случае возвращает ответом на запрос десятичную дробь с запятой. Всю жизнь было с точкой, насколько я знаю.
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2021, 17:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Как вариант...
<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>
Ответить с цитированием
  #5 (permalink)  
Старый 12.08.2021, 17:26
Новичок на форуме
Отправить личное сообщение для chester Посмотреть профиль Найти все сообщения от chester
 
Регистрация: 11.11.2010
Сообщений: 7

Да, спасибо, все заработало.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется арифметическое действие (сложение) tp-20 Events/DOM/Window 6 12.02.2020 14:40
Почему происходит схлопывание вкладок? borus Общие вопросы Javascript 0 20.10.2016 17:29
Умножение и сложение на 2. Должна же быть разница? Mrjoey Общие вопросы Javascript 8 10.10.2013 18:51
Скрипт сложение работает не так, нужна помощь! saves7 Общие вопросы Javascript 4 09.08.2013 08:07
Как происходит утечка памяти в даном случае? Yazla Общие вопросы Javascript 2 09.11.2009 13:02