![]() |
Неправильный подсчёт суммы
Недавно начал изучать ActionScript 3 и встретился с простой проблемой. Пытаюсь вывести сумму:
Код:
trace(13.2-0.4);// 12.799999999999999 Притом, что: Код:
trace(13.2-0.1);// 13.1 Не могу проследить закономерность, когда считает верно, а когда сбивается и выдаёт период. Почему так происходит и как избежать? Или придется постоянно округлять? |
Код AS3:
|
ну, это я для примера написал. У меня-то в коде переменные и хотелось бы, чтобы все они считались правильно вне зависимости от значения :) Конечно, можно умножать всё на 100 (переменные все до двух знаков после запятой), отнимать и потом делить на 100, но это только как вариант :)
Добавлено через 2 часа 18 минут Кажется, нашёл ответ на свой вопрос в книге "Сборник рецептов" 4.3. Округление чисел |
И всё-таки я опять запутался.
Код AS3:
Как округлить число по нормальному до двух символов после запятой? Может, как-нибудь можно вывести число с точностью до сотых, не округляя само число? |
Не надо работать с плавающими запятыми просто.
Код AS3:
|
Не все десятичные числа можно представить в машинном виде. Для вывода используйте number.toFixed() или number.toPrecision().
|
| Часовой пояс GMT +4, время: 06:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.