我有一个 Python 中的 float 列表,当我将其转换为字符串时,我得到以下内容
[1883.95, 1878.3299999999999, 1869.4300000000001, 1863.4000000000001]
当我创建它们时,这些 float 在小数点后有 2 位(我相信如此),
然后我用了
str(mylist)
如何得到小数点后2位的字符串?
=======================
让我更具体一点,我希望最终结果是一个字符串,并且我想保留分隔符:
"[1883.95, 1878.33, 1869.43, 1863.40]"
之后我需要做一些字符串操作。例如 +="!\t!"
.
受@senshin 启发,下面的代码可以工作,但我认为有更好的方法
msg = "["
for x in mylist:
msg += '{:.2f}'.format(x)+','
msg = msg[0:len(msg)-1]
msg+="]"
print msg
最佳答案
使用字符串格式获取所需的小数位数。
>>> nums = [1883.95, 1878.3299999999999, 1869.4300000000001, 1863.4000000000001]
>>> ['{:.2f}'.format(x) for x in nums]
['1883.95', '1878.33', '1869.43', '1863.40']
格式字符串{:.2f}
的意思是“打印一个小数点后两位的定点数(f
)(.2
)”。 str.format
将自动正确地对数字进行四舍五入(假设您首先输入了带两位小数的数字,在这种情况下,浮点错误不足以弄乱四舍五入) .
https://stackoverflow.com/questions/23418600/