将字符串转换为浮点数,两位小数

时间:2014-04-04 13:13:15

标签: 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

我需要输出代码

3.00  # correct decimal places
True  # is float

2 个答案:

答案 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)。