Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2013, 17:32
Новичок на форуме
Отправить личное сообщение для misteralexander Посмотреть профиль Найти все сообщения от misteralexander
 
Регистрация: 21.05.2013
Сообщений: 2

Глюки с умножением!
Буду очень признателен за совет.
Ситуация меня просто вводит в транс!
При умножении получаю какие то бредовые значений.

Умножаю
8.61 * 60.000

и неизменно получаю
516.5999999999999

var cena4= 8.61 * 60.000;
document.write(cena4);

Я просто в шоке. Специализируюсь на php. Решил немного использовать JavaScript. В чем проблема? Я так понимаю глюки из-за точки в цифрах. Как решить?
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2013, 17:37
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от misteralexander
Как решить?
http://javascript.ru/Number/toFixed
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2013, 17:47
Новичок на форуме
Отправить личное сообщение для misteralexander Посмотреть профиль Найти все сообщения от misteralexander
 
Регистрация: 21.05.2013
Сообщений: 2

Спасибо, метод работает. Но есть информация - в чем причина глюка, ведь речь идет об элементарнейшей и базовой операции??
Ответить с цитированием
  #4 (permalink)  
Старый 21.05.2013, 17:54
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Числа хранятся в памяти в формате с плавающей точкой в двоичной системе исчисления. Число 8.61 невозможно представить точно в виде двоичной дроби с конечным количеством знаков после запятой. Отсюда и погрешность в вычислениях.
Ответить с цитированием
  #5 (permalink)  
Старый 21.05.2013, 17:57
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

http://ru.wikipedia.org/wiki/IEEE_754-2008
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 21.05.2013, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

misteralexander,
ЧаВО - часто задаваемые вопросы (faq)
...
8. Почему 0.2+0.1 == 0.30000000000000004
Ответить с цитированием
  #7 (permalink)  
Старый 21.05.2013, 21:46
Аспирант
Отправить личное сообщение для edison Посмотреть профиль Найти все сообщения от edison
 
Регистрация: 01.04.2013
Сообщений: 58

Цитата:
Я просто в шоке. Специализируюсь на php.
В php тоже такие казусы, с плавающей точкой , есть , странно, что вы в шоке)))) Вот так вот, залезли в другой яп и узнали про тот в котором специализируетесь ))) А причины уже выше написали, они и для пхп такие же )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюки таймера при переключении вкладки браузера denfer12 Общие вопросы Javascript 1 11.05.2012 22:18
Opera - глюки с overflow: hidden zukalo (X)HTML/CSS 7 26.10.2011 21:36
SVG - размер холста 10.000.000 = глюки Shasoft Библиотеки/Тулкиты/Фреймворки 2 30.11.2009 11:21
Глюки fancybox greatilya Элементы интерфейса 5 03.06.2009 21:07
Глюки IE Elfinit Prototype & script.aculo.us 5 05.08.2008 09:15