簡體   English   中英

數字步進小數的怪異行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM