[英]Weird behaviour on Numeric Stepper decimals
我正在為帶有數字的字段編輯器。 我嘗試了一個文本字段,但是由於它是一個Number數據類型,所以運行不順利-盡管將字符串重鑄為數字等。它一直給我NaN作為值。 因此,我決定最好使用數字步進器。
最初加載它時,它將刪除所有小數點,並且僅將我的數字顯示為整數。 我將stepIncrement更改為0.1,現在它確實顯示了小數點(一個奇怪的要求imo)..但是當我逐步執行時,偶爾會給我一個像“ 17.700000000000003”的值,而我期望是17.7。 我數據中的所有數字都有一個小數位。 我知道我可以寫一個dataformatter,但是在這種情況下似乎沒有必要。
我還有其他方法可以解決這個問題嗎?
您偶然發現了嘗試以浮點二進制格式(例如IEEE 754)表示十進制數字的折衷方案。並非所有的十進制數字都可以准確表示。 您可以在這里詳細閱讀此問題:
http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding
您可以使用Number.toFixed(fractionDigits:uint)來顯示任意數量的小數位。
在您的MXML中
<s:NumericStepper valueFormatFunction="stepperFormatter"/>
在您的腳本中
protected function stepperFormatter(newValue:Number):String
{
return Math.ceil(newValue).toString()
}
您可以使用valueFormatFunction來獲取數字值並將其格式化為字符串。 您將需要在數字步進器上設置顯式寬度,以使其適合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.