Числовой тип данных автоматически теряет точность во Flex - PullRequest
0 голосов
/ 19 мая 2011
private function getPercentage(max:Number, value:Number):int
{
   return Number((value*100) / max);
}

Я вызываю вышеуказанную функцию, чтобы назначить процент для объекта.

var max:Number = findMax();
p.percentage = getPercentage(max, p.value);

Предположим, что p это некоторый объект с процентом, определенным как

public var percentage:Number;

Когда я ставлю точку останова и проверяю значение, возвращаемое в getPercentage, это будет что-то вроде 1.22343342322, но когда я присваиваю ему значение p.percentage, оно автоматически становится равным 1, теряя точность. * * 1010

Как мне справиться с такой ситуацией?

В LiveDocs написано

Чтобы сохранить число с плавающей запятой, включить десятичную точку в число. Если вы опустите десятичную точку, номер будет сохранен как целое число.

Но как мне это сделать? Любое понимание этой проблемы высоко ценится.

1 Ответ

5 голосов
/ 19 мая 2011

Ваш метод getPercentage() возвращает int.Измените его на Number.

...