[英]Turn string into float with two decimal places
我正在嘗試將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")
以兩位十進制數字查看您的float
值。
你的測試在幾個方面都有缺陷。
va = '%.2f' % float('3')
創建了一個看起來像 float 而不是float
的str
。
vb = float('%.2f' % float('3'))
創建了一個不錯的float
但是您的打印測試print vb
然后沒有將float
格式化為在點后使用兩位十進制數字。 它只是使用默認格式(打印一個尾隨.0
以表明這不是int
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.