首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Actionscript的Number类的toFixed()方法返回奇怪的值

Actionscript的Number类的toFixed()方法返回奇怪的值
EN

Stack Overflow用户
提问于 2010-01-08 08:53:52
回答 3查看 3.1K关注 0票数 3

我正在用数字做一些计算,并且只想打印一个整数(这个数字没有小数)。

我认为toFixed()类的Number方法会起作用,而且大多数情况下都是这样。但是经常会返回奇怪的值。以下是两个例子:

  • Number(0.002).toFixed(0)返回"0.",而Number(1.002).toFixed(0)返回"1" (没有句点)
  • 偶尔,Number(0.002).toFixed(0)会返回"1"

不用说,这不是预期的行为。我没有正确地使用这个方法吗?

**编辑:**我知道我只需要做int(0.002)才能得到0,但我想了解这种奇怪的行为。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-08 10:56:31

这是个已知的窃听器。不太好的解决方法是要么使用Math.round(),要么只检查返回的字符串作为尾随点。

参见关于JIRA的bug报告此处:http://bugs.adobe.com/jira/browse/FP-1595

票数 7
EN

Stack Overflow用户

发布于 2010-01-08 09:29:18

我在FlexSDK3.4和FlexSDK4.0上都进行了测试,它看起来像一个bug,也许会在bugs.adobe.com上发布呢?尽管我认为这可能与Flash有关,而不是Flex。

无论如何,如果您试图将一个数字转换为没有十进制位的字符串,您可以使用它作为解决办法:

代码语言:javascript
运行
复制
Math.round(theNumber).toString()

这将去掉点后的所有数字。

票数 1
EN

Stack Overflow用户

发布于 2010-12-09 17:15:10

对于那些阅读这个问题的人来说,FYI :显然这是已知的臭虫,但我想提到的是,我在Flex4.0SDK和当前的Flex4.1SDK中看到了这个问题。在Adobe站点上,我要求澄清关于何时修复这个问题(票证上写着"Resolved: 02/26/09 01:28 PM“,而不是声称包含修复的版本)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2026430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档