数字步进小数的奇怪行为

Dam*_*mon 2 apache-flex numbers decimal numericupdown actionscript-3

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

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

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

Ada*_*ith 7

您偶然发现尝试用浮点二进制格式(如IEEE 754)表示十进制数的妥协.并非所有十进制数都可以精确表示.您可以在此处详细阅读此问题:

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

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