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

Javascript 如何避免eval()将1e-1转换为0.1?,javascript,openlayers,Javascript,Openlayers,我使用的是第三方javascript库,它使用eval(),所以当我使用“1e-1”值作为参数调用其中一个函数时,我会得到0.1返回值。我如何从解析数字的过程中逃脱或避免它 一个基本的例子是: console.log(eval("1e-1")); 我希望结果是1e-1,但eval仍然需要在那里 编辑: 好的,忽略上面的控制台示例 它应该在以下方面起作用: 没有办法使用这个库。抱歉。一种快速的方法是用字符实体代码替换连字符: console.log(eval("1e-1"));

我使用的是第三方javascript库,它使用
eval()
,所以当我使用
“1e-1”
值作为参数调用其中一个函数时,我会得到
0.1
返回值。我如何从解析数字的过程中逃脱或避免它

一个基本的例子是:

console.log(eval("1e-1"));
我希望结果是1e-1,但eval仍然需要在那里


编辑:

好的,忽略上面的控制台示例 它应该在以下方面起作用:


没有办法使用这个库。抱歉。

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

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

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

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

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

不要使用eval()。当然,
编号(“1e-1”)
也有同样的“问题”。但是,如果您想要从eval返回一个字符串,则必须向其提供一个:
eval('1e-1')

拒绝过度使用
eval
的Javascript框架。eval=evil。如果我正确理解了您想要的内容,您能将
1e-1
用引号括起来吗?然后将其视为字符串文本:
eval('1e-1')
。我尝试了所有显而易见的事情。@capdragon-引用肯定会奏效。传递给
eval
的字符串包含字符串文字。它不会有什么特别的作用。@jamesalardice:是的,它确实有用。谢谢。你要传递给的函数是什么?如果不希望函数正确使用该值,为什么要将该值传递给函数atall?多了解一些信息会很有帮助。我也不太走运,但我已经为您提供了一个可能的解决方案。我希望这能有所帮助,如果我发现一些更有用的东西,我会回来的。我同意,虽然OP声明有一个库正在使用它,所以它很可能超出海报的控制。因此,正如Jamiec上面所说,不要使用那个库:-)正如老话所说:如果轮子是方形的,就重新发明它!