首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >评估在评估中产生问题

评估在评估中产生问题
EN

Stack Overflow用户
提问于 2009-12-29 23:53:06
回答 3查看 419关注 0票数 1

我使用eval将字符串小数转换为小数。

代码语言:javascript
复制
eval("000451.01");

当我使用上面的javascript语句时,它抛出了异常'expected ;‘

当使用eval("000451");时,它会给我一个不同的结果。

有谁知道吗??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-30 00:01:34

你不应该使用 eval来解析数字,它会比一般的方法慢几个数量级。

相反,您应该使用parseFloat函数。像这样:parseFloat("000451.01")

出现错误的原因是Javascript将以0开头的数字视为八进制数,而八进制数不能有小数。

如果您想解析一个整数,请调用parseInt,并确保给出10的第二个参数,以强制它解析基数为10的数字,否则您将得到相同的问题。

票数 8
EN

Stack Overflow用户

发布于 2009-12-29 23:58:17

以零开头的数字被解释为八进制数。但是八进制数只是整数,而不是浮点数。所以试试这个:

代码语言:javascript
复制
eval("451.01")

但是如果你使用parseFloat function会更好。

代码语言:javascript
复制
parseFloat("000451.01")
票数 1
EN

Stack Overflow用户

发布于 2009-12-29 23:58:45

在Javascript中,以零开头的标记是以8为基数的整数文字。以8为基数的000451是以10为基数的297,并且000451.01被解析为int(297) dot int(1)而不是单个数字文字。

去掉初始的零,它就可以工作了。

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

https://stackoverflow.com/questions/1975303

复制
相关文章

相似问题

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