1

(オブジェクトとして)数値を取得し、その数値の適切にフォーマットされた表現を返す関数があります。非常に小さい数を取得できるため、プロセスではflexのNumberオブジェクトを使用します。これはコードの一部です:

var numericValue:Number = Number(value.toString());
var fixed:String = numericValue.toFixed(precision); 

これが問題です。上記のコードを使用するときに
5.684341886080802e-14 これらの数値を表現したいため、数値がの形式になっている場合があります。0この特定のケースでは、精度が0の場合、奇妙な結果が得られます

Initial Values:
value = 5.684341886080802e-14
percision = 0

Operation on values:
var numericValue:Number = Number(value.toString());
var fixed:String = numericValue.toFixed(precision); 

Result:
fix = "1."

どうしてこれなの?
(BTW- X.XXXXXXe-YY0より大きいpercisionの表現の他の数値では、0の正しい結果が得られます)

4

1 に答える 1

0

これはFlashPlayer(FP-5141)のバグです。それはかなり前からありました。バグレポートには修正済みと記載されていますが、FlashPlayer11.5以降ではありません。

于 2012-11-08T16:40:09.070 に答える