簡體   English   中英

將字符串轉換為帶有兩位小數的浮點數

[英]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 而不是floatstr

vb = float('%.2f' % float('3'))創建了一個不錯的float但是您的打印測試print vb然后沒有將float格式化為在點后使用兩位十進制數字。 它只是使用默認格式(打印一個尾隨.0以表明這不是int )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM