2

我正在为一个带有数字的字段做一个编辑器。我尝试了一个文本字段,但由于它是一个数字数据类型,它并不顺利 - 尽管将字符串重铸为数字等。它一直给我 NaN 作为值。所以我决定最好使用数字步进器。

当我最初加载它时,它会丢弃我所有的小数,只将我的数字显示为整数。我将 stepIncrement 更改为 0.1,现在它确实显示了小数(imo 的一个奇怪的要求).. 但是当我加紧时,它偶尔会给我一个像 '17.700000000000003' 这样的值,而我期望 17.7。我数据中的所有数字都有一个小数位。我知道我可以编写一个数据格式化程序,但在这种情况下似乎没有必要。

我还有其他方法可以解决这个问题吗?

4

3 回答 3

7

您偶然发现了尝试以 IEEE 754 等浮点二进制格式表示十进制数的折衷方案。并非所有十进制数都可以精确表示。您可以在此处详细阅读此问题:

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

您可以使用Number.toFixed(fractionDigits:uint)显示任意小数位数。

于 2011-04-12T00:55:24.950 回答
0

在你的 MXML

<s:NumericStepper  valueFormatFunction="stepperFormatter"/>

在你的脚本中

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

您可以使用 valueFormatFunction 获取数值并将其格式化为字符串。您需要在数字步进器上设置明确的宽度以使其适合。

于 2011-12-24T07:20:52.543 回答