数字数据类型在Flex中自动失去精度

Ran*_*ray 0 apache-flex precision numbers actionscript-3

private function getPercentage(max:Number, value:Number):int
{
   return Number((value*100) / max);
}
Run Code Online (Sandbox Code Playgroud)

我调用上面的函数为对象分配一个百分比.

var max:Number = findMax();
p.percentage = getPercentage(max, p.value);
Run Code Online (Sandbox Code Playgroud)

假设p是某个对象,其百分比定义为

public var percentage:Number;
Run Code Online (Sandbox Code Playgroud)

当我放置一个断点并检查返回的值时,getPercentage它会像1.22343342322,但是当我将它分配给它时p.percentage会自动变为1,从而失去精度.

我该如何处理这种情况?

它在LiveDocs中说

要存储浮点数,请在数字中包含小数点.如果省略小数点,则该数字将存储为整数.

但是我该怎么做?对此问题的任何见解都非常感谢.

Con*_*ner 5

你的方法getPercentage()返回int.将其更改为Number.