为什么在Python中str(0.20)= 0.2而不是0.20?

时间:2017-09-12 18:02:30

标签: python python-2.7

我试图使用

将浮点数0.20转换为字符串
str(0.20)

然而,我得到的是'0.2'而不是'0.20'。有谁知道如何解决这一问题?我试图搜索Google和stackoverflow,但我没有找到任何有用的答案。

提前致谢!

3 个答案:

答案 0 :(得分:2)

您可以使用python的字符串格式化功能。 实际上有三种可能性:

  • f-strings,因为python 3.6

    value = 0.2
    print(f'{value:.2f}') # 2 digits precision
    
  • str.format

    value = 0.2
    print('{:.2f}'.format(value))
    
  • %格式化

    value = 0.2
    print('%.2f' % value)
    

有关更多格式详情,请参阅https://docs.python.org/3.6/library/string.html#format-string-syntax

答案 1 :(得分:0)

您可以使用允许您以预定义方式格式化数字的format string。要说您要格式化浮点数并在分隔符后面有两位数,请使用.2f

data = 0.20

print("{0:.2f}".format(data))

答案 2 :(得分:0)

对标题中的问题的回答类似于关于peerDependencies的{​​{3}}:这是因为__str__是为了便于阅读,所以它的目标是生成 nice 输出而不是精确一。