将字符串转换为保留两位小数的浮点数
我想把 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
只需要用 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
)。
7
你把浮点数的值和它的字符串表示搞混了。用 float(3)
就可以了,每当你需要打印一个浮点数时,使用格式化就行。
va = float('3')
print format(va, '.2f')
print isinstance(va, float)
float
对象本身并没有跟小数位数相关的概念。