![]() |
появление чисел после запятой при элементарных целочисленных +- операциях?
Вот некой переменной целочисленной (допустим 100) начинаю минусовать число (допустим 2) в цикле. Трейшу:
100 98 ... 88 85,9999999998 и далее в таком духе... Откуда этот маразм? Я так понимаю, если я потом эту переменную использую - при таком раскладе сложность вычислений увеличивается и растет загрузка цп... Или я не прав? |
Код можно?
|
Цитата:
Код AS1/AS2:
49.8 49.6 49.4 49.2 49 48.8 48.6 48.4 48.2 48 47.8 47.6 47.4 47.2 47 46.8 46.5999999999999 46.4 46.1999999999999 45.9999999999999 45.7999999999999 45.5999999999999 45.3999999999999 45.1999999999999 44.9999999999999 |
И где в числе 0.2 целое число?
|
виноват, просто с целым числом дольше ждать ошибку
Добавлено через 48 секунд не важно даже, с каким - целым или дробным... важнее вопрос - дает ли это в дальнейшем нагрузку на проц? |
Ее не будет. При работе с дробными числами (при чем не у всех, дроби полученные путем деления на 5, от этом проблемы избавлены) накапливается погрешность, которая в один прекрасный момент вылазит на свет. А с целыми числами такой погрешности нет.
Возможный вариант, что число было получено в результате каких вычислений и трейс показывает его как целое, но на самом деле, он просто округляет его до целого. Например число 2.000000000000001 трейс покажет как 2 |
спасибо за развернутый ответ.
|
у меня тот-же трабл, но вычитать дробную переменную нужно.
Можно както обрезать или округлить полученную такую дробную переменную ? Чтоб выводилось не 234.86999999999999999 а 234.86 c двумя числами после запятой ? Всё придумал, умножаем на 100 делем на 100 |
| Часовой пояс GMT +4, время: 11:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.