Ошибка умножения числового типа в ActionScript 3.0. - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь перемножить переменные числового типа: код выглядит примерно так:

trace(6.60*6);// !=39.6
var a:Number=6.6;
var b:Number=6;
trace(a*b);// !=39.6

это не равно 39.6 в Action Script 3.0 .. вместо этого показано 39.5999999994 ...

Ответы [ 2 ]

0 голосов
/ 06 января 2012

У меня никогда не было полностью «чистого чувства» способа округления до точности в Actionscript, следующие лучшие вещи можно найти здесь:

Как справиться с точностью чисел в Actionscript?

0 голосов
/ 06 января 2012

Это побочный продукт стандарта IEEE арифметики с плавающей запятой. Если вам нужна реальная причина, почему стоит проверить этот документ:

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

Большая часть этого происходит от корней Javascript Actionscript, а в Javascript все с плавающей точкой. Нет никакой разницы между математическими выражениями и числами с плавающей запятой, поэтому возникают странные ошибки, которые не встречаются в других языках, но они будут, если вы всегда используете поплавки.

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