我正在尝试将str '3'
转换为float 3.00
va = '%.2f' % float('3')
print va
print isinstance(va, float)
3.00
False
---
vb = float('%.2f' % float('3'))
print vb
print isinstance(vb, float)
3.0
True
我需要输出代码
3.00 # correct decimal places
True # is float
答案 0 :(得分:4)
您将浮点值与其字符串表示混淆。 float(3)
就足够了,无论何时需要打印,都可以使用格式化。
va = float('3')
print format(va, '.2f')
print isinstance(va, float)
float
个对象本身有无概念,需要跟踪多个小数位。
答案 1 :(得分:0)
只需使用float("3")
即可实现,但请注意float
小数点后没有特定的位数;这更像是使用字符串格式输出float
的功能。因此,您可以使用'%.2f' % float("3")
查看带有两位小数的float
值。
你的测试在几个方面都存在缺陷。
va = '%.2f' % float('3')
创建了一个str
,看起来像一个浮动,而不是float
。
vb = float('%.2f' % float('3'))
创建了一个不错的float
,但是您的打印测试print vb
然后没有将float
格式化为在点之后使用两位小数。它只使用了默认格式(打印一个尾随.0
以明确这不是int
)。