2

数字のあるフィールドのエディターを作成しています。テキストフィールドを試しましたが、数値データ型であるため、文字列を数値などとして再キャストしたにもかかわらず、スムーズに進みませんでした。値としてNaNが返され続けました。そこで、数値ステッパーを使用するのが最善であると判断しました。

最初にロードしたとき、すべての小数が削除され、数値のみが整数として表示されていました。stepIncrementを0.1に変更すると、小数が表示されます(奇妙な要件imo)。しかし、ステップアップすると、17.7を期待するときに「17.700000000000003」のような値が表示されることがあります。私のデータのすべての数字は小数点以下1桁です。データフォーマッタを作成できることは知っていますが、この状況では必要ないようです。

これに対処する別の方法はありますか?

4

3 に答える 3

7

IEEE754のような浮動小数点バイナリ形式で10進数を表現しようとする妥協点に遭遇しました。すべての10進数を正確に表現できるわけではありません。この問題について詳しくは、こちらをご覧ください。

http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding

Number.toFixed(fractionDigits:uint)を使用して、小数点以下の任意の桁数で表示できます。

于 2011-04-12T00:55:24.950 に答える
0

数値を取得して文字列にフォーマットするvalueFormatFunctionを使用できます。ただし、数値ステッパーを合わせるには、明示的な幅を設定する必要があります。

于 2011-12-24T07:20:52.543 に答える
0

MXMLで

<s:NumericStepper  valueFormatFunction="stepperFormatter"/>

スクリプトで

protected function stepperFormatter(newValue:Number):String
{
    return Math.ceil(newValue).toString()
}
于 2015-04-21T16:28:46.730 に答える