eval在评估中产生问题

时间:2009-12-29 15:53:06

标签: javascript exception eval

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

eval("000451.01");

当我使用上述语句javascript时,它会引发异常'expected;'

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

任何人都有任何想法?

3 个答案:

答案 0 :(得分:8)

您应使用eval来解析数字;它比正常方法慢几个数量级。

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

您收到错误的原因是Javascript将以0开头的数字视为八进制数,不能包含小数。

如果要解析整数,请调用parseInt,并确保提供第二个参数10以强制它解析基数为10的数字,否则您将遇到同样的问题。

答案 1 :(得分:1)

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

eval("451.01")

但如果你使用parseFloat function

会更好
parseFloat("000451.01")

答案 2 :(得分:1)

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

删除初始零,它应该可以工作。