Python 将字符串转换为小数点后两位的浮点

Python 将字符串转换为小数点后两位的浮点,python,floating-point,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 您将浮点值与

我正在尝试将
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

您将浮点值与其字符串表示形式混淆
float(3)
就足够了,无论何时需要打印,都要使用格式

va = float('3')
print format(va, '.2f')
print isinstance(va, float)
float
对象本身没有要跟踪的小数位数的概念。

只需使用
float(“3”)
即可实现这一点,但请注意
float
在小数点后没有特定的位数;这更像是使用字符串格式输出
float
的一个特性。因此,您可以使用
'%.2f'%float(“3”)
查看带有两个十进制数字的
浮点值

你的测试在几个方面都有缺陷

va='%.2f'%float('3')
创建了一个
str
,看起来像一个float,而不是
float


vb=float('%.2f'%float('3'))
创建了一个合适的
float
,但是您的打印测试
print vb
没有将
float
格式化为在点后使用两个十进制数字。它只是使用了默认格式(打印一个尾随的
.0
,以明确这不是一个
int
)。

我从字符串“3”开始,而不是数字3。@onepiece:这与答案没有区别。实际上我明白你的意思
float()
表示
float
format()
表示
string
。用于不同的目的。所以基本上对于字符串
'3'
,我只能将
'3.00'
显示为字符串?如果要显示某个内容,它必须始终是字符串(除非我们讨论图形)。浮点的内部表示形式与
3.0
的内部表示形式大不相同,因此前面有
3
的任何东西都是一个字符串,要显示它,首先必须将
浮点
转换成这样的字符串。仅当使用
print vb
时,才会隐式执行此操作(使用格式的默认参数)。