Ошибка округления Actionscript при делении и умножении - PullRequest
0 голосов
/ 20 октября 2011

Я выполняю следующие действия в actioncript в Coldfusion Flash Forms:

90 / 3.7

Дает мне:

24.3243243243243

В то время как калькулятор дает мне:

24.32432432432432

Обратите внимание на дополнительные 2 в конце.

Итак, моя проблема возникает, когда я пытаюсь получить исходное значение 90, взяв 24.3243243243243 * 3.7, а затем я получаю 89.9999999999, что неправильно.

Почему Actionscript усекает значение и как этого избежать, чтобы получить правильную сумму, которую получает калькулятор?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 20 октября 2011

Округлите свой номер, используя процедуру, подобную этой

var toFixed:Function = function(number, factor) {
    return (Math.round(number * factor)/factor);
}

Если коэффициент равен 10, 100, 1000 и т. Д., Простой способ думать об этом - это число 0 в факторе, это количество десятичных знаков

так

toFixed (1.23341230123, 100) = 1.23

0 голосов
/ 20 октября 2011

Хорошее объяснение числового значения в ActionScript можно найти по адресу http://docstore.mik.ua/orelly/web2/action/ch04_03.htm. См. Раздел 4.3.2.1. Точность с плавающей точкой

Соответствующая цитата:

"Чтобы учесть мелкие расхождения, вы должны округлить свои цифры вручную, если разница отрицательно повлияет на поведение вашего кода."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...