我正在用数字做一些计算,并且只想打印一个整数(这个数字没有小数)。
我认为toFixed()类的Number方法会起作用,而且大多数情况下都是这样。但是经常会返回奇怪的值。以下是两个例子:
Number(0.002).toFixed(0)返回"0.",而Number(1.002).toFixed(0)返回"1" (没有句点)Number(0.002).toFixed(0)会返回"1"不用说,这不是预期的行为。我没有正确地使用这个方法吗?
**编辑:**我知道我只需要做int(0.002)才能得到0,但我想了解这种奇怪的行为。
发布于 2010-01-08 10:56:31
这是个已知的窃听器。不太好的解决方法是要么使用Math.round(),要么只检查返回的字符串作为尾随点。
参见关于JIRA的bug报告此处:http://bugs.adobe.com/jira/browse/FP-1595
发布于 2010-01-08 09:29:18
我在FlexSDK3.4和FlexSDK4.0上都进行了测试,它看起来像一个bug,也许会在bugs.adobe.com上发布呢?尽管我认为这可能与Flash有关,而不是Flex。
无论如何,如果您试图将一个数字转换为没有十进制位的字符串,您可以使用它作为解决办法:
Math.round(theNumber).toString()这将去掉点后的所有数字。
发布于 2010-12-09 17:15:10
对于那些阅读这个问题的人来说,FYI :显然这是已知的臭虫,但我想提到的是,我在Flex4.0SDK和当前的Flex4.1SDK中看到了这个问题。在Adobe站点上,我要求澄清关于何时修复这个问题(票证上写着"Resolved: 02/26/09 01:28 PM“,而不是声称包含修复的版本)。
https://stackoverflow.com/questions/2026430
复制相似问题