Я пытаюсь перемножить переменные числового типа: код выглядит примерно так:
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 ...
У меня никогда не было полностью «чистого чувства» способа округления до точности в Actionscript, следующие лучшие вещи можно найти здесь:
Как справиться с точностью чисел в Actionscript?
Это побочный продукт стандарта IEEE арифметики с плавающей запятой. Если вам нужна реальная причина, почему стоит проверить этот документ:
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Большая часть этого происходит от корней Javascript Actionscript, а в Javascript все с плавающей точкой. Нет никакой разницы между математическими выражениями и числами с плавающей запятой, поэтому возникают странные ошибки, которые не встречаются в других языках, но они будут, если вы всегда используете поплавки.