如何避免eval()将1e-1转换为0.1?

时间:2012-01-31 15:00:51

标签: javascript openlayers

我正在使用使用eval()的第三方javascript库,因此当我使用"1e-1"值作为参数调用其中一个函数时,我会返回0.1。我如何逃避这一点或避免解析数字?

一个基本的例子是:

console.log(eval("1e-1"));

我希望结果为1e-1,但是eval仍然需要在那里。


修改

好的,请忽略上面的控制台示例 THIS is the example 它应该起作用:

无法使用此库。遗憾。

2 个答案:

答案 0 :(得分:2)

一种快速的方法是简单地用连字符实体代码替换连字符:

console.log(eval("1e-1"));

<强>更新

经过一段时间的实验,唯一接近的是在连字符前后放置空格:

features[1].attributes.tag= "1e - 1";

我认为值得一提的是,这足以满足您的需求。

答案 1 :(得分:2)

不要使用eval()。当然,Number("1e-1")具有相同的“问题”。但是,如果您想要从eval返回一个字符串,则必须使用一个字符串:eval("'1e-1'")