Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда / 6 сообщений из 6, страница 1 из 1
24.12.2013, 21:27
    #38511533
ughunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
28.34 + -15.48 = 12.86
140.02 + 29 = 169.02
-2.09 + -37.03 = -39.120000000000004

Откуда эта куча нулей?
...
Рейтинг: 0 / 0
24.12.2013, 21:44
    #38511540
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
ughunter,

погрешности округления
тип данных float
увы...
...
Рейтинг: 0 / 0
24.12.2013, 22:41
    #38511588
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
ughunter,

Компьютер работает с двоичными числами, поэтому надо понимать, что
точно перевести дробное число по основанию 10 в число по основанию 2 невозможно.

Такая проблема не является особенностью JavaScript, в любом ЯП вы можете наблюдать примерно то-же самое.

Для хранения отрицательных чисел в компьютере используется дополнительный код.
То-есть, 37.03 может быть переведено в десятичный вид как 37.029999999999996, а -37.03 как -37.030000000000004

Если я где-то ошибся, прошу поправить.
...
Рейтинг: 0 / 0
24.12.2013, 22:52
    #38511593
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
Чтобы понять наглядно механизм усекания/округления чисел при хранении в памяти,
попытайтесь представить клеточки на листе бумаги, каждый разряд - это клеточка.

Возьмём 4 клеточки-разряда, и попробуем сохранить там дробное число.
Произойдёт неизбежная потеря точности, если клеточек не хватит (придётся округлять или отбрасывать часть).

Теперь увеличьте число клеточек согласно разрядности ОС, и получите примерный порядок округления.

Как-то так, точнее не могу сформулировать.
...
Рейтинг: 0 / 0
24.12.2013, 22:56
    #38511595
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
а в случае с конкретным ЯП, например, JS, нужно учитывать максимально возможное количество значащих цифр в этом ЯП,
с учётом десятичной точки и других спец.символов, применяемых для записи чисел.
...
Рейтинг: 0 / 0
25.12.2013, 07:42
    #38511714
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Не могу разобраться.... почему при суммировании отрицательных чисел получется ерунда / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]