将字符串转换为带有两位小数的浮点数

one*_*ece 0 python floating-point

我正在努力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
Run Code Online (Sandbox Code Playgroud)

我需要输出的代码

3.00  # correct decimal places
True  # is float
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

您将浮点值与其字符串表示形式混淆。float(3)就足够了,每当您需要打印一张时,请使用格式。

va = float('3')
print format(va, '.2f')
print isinstance(va, float)
Run Code Online (Sandbox Code Playgroud)

float对象本身没有要跟踪的小数位数的概念