【发布时间】:2017-02-20 15:41:22
【问题描述】:
我有一个这样的字符串
list_str = '[148654.08425925925, 148656.99994212962, 148658.08229166668, 148661.0020601852]'
然后我使用 eval() 将其转换为 Python 中的真实列表对象
print eval(list_str)
但是,我不希望输出是四舍五入的
0 = {float} 148654.084259
1 = {float} 148656.999942
2 = {float} 148658.082292
3 = {float} 148661.00206
我怎样才能让它保持字符串中的值(精确的十进制)?
我需要使用 eval() 因为它也会使用这个列表中的其他操作
【问题讨论】:
-
永远不要将变量命名为
list等...现在您不能在该语句之后调用list(..)。 -
@WillemVanOnsem 可能是 2.x,因为
print没有括号。 -
@Ev.Kounis,猜测有什么意义?为什么“可能是 2.x”?很多人使用 Python 3。猜测这样的事情没有帮助;让 OP 回答。
-
numpy标签是否相关?
-
只是为了指出一个明显的问题:使用 Python 3.x 而不是 Python 2.7 (可能)非常容易解决您的问题。在 Python 3.5 中,您的代码会产生您需要的结果。
标签: python python-2.7 floating-point decimal