我使用eval将字符串小数转换为小数。
eval("000451.01");当我使用上面的javascript语句时,它抛出了异常'expected ;‘
当使用eval("000451");时,它会给我一个不同的结果。
有谁知道吗??
发布于 2009-12-30 00:01:34
你不应该使用 eval来解析数字,它会比一般的方法慢几个数量级。
相反,您应该使用parseFloat函数。像这样:parseFloat("000451.01")。
出现错误的原因是Javascript将以0开头的数字视为八进制数,而八进制数不能有小数。
如果您想解析一个整数,请调用parseInt,并确保给出10的第二个参数,以强制它解析基数为10的数字,否则您将得到相同的问题。
发布于 2009-12-29 23:58:17
以零开头的数字被解释为八进制数。但是八进制数只是整数,而不是浮点数。所以试试这个:
eval("451.01")但是如果你使用parseFloat function会更好。
parseFloat("000451.01")发布于 2009-12-29 23:58:45
在Javascript中,以零开头的标记是以8为基数的整数文字。以8为基数的000451是以10为基数的297,并且000451.01被解析为int(297) dot int(1)而不是单个数字文字。
去掉初始的零,它就可以工作了。
https://stackoverflow.com/questions/1975303
复制相似问题