簡體   English   中英

在Python 3.x中保留或添加小數位

[英]Preserving or adding decimal places in Python 3.x

我試圖返回一個數字,保留6位小數,無論該數字是多少。

例如:

>>> a = 3/6
>>> a
0.5

在保留其類型為float的同時,如何取a並將其設置為0.500000?

我試過了

'{0:.6f}'.format(a)

但這返回一個字符串。 我想要可以完成相同任務但返回浮點數的東西。

在計算機內存中,浮點數被存儲為IEEE754對象 ,這意味着它只是一堆以給定格式公開的二進制數據,與編寫時的數字字符串完全不同。

因此,當您對其進行操作時,它仍然是浮點數,並且小數點后沒有小數位數。 只有當您顯示它時,它才起作用,並且無論您做什么,當您顯示它時,它都會轉換為字符串。

那時,您可以進行字符串轉換,可以指定要顯示的小數位數,並使用編寫時使用的字符串格式進行轉換。

這個問題表明對諸如float和string之類的數據類型的性質有一些誤解。

計算機中的浮點數具有二進制表示形式,而不是十進制形式。 python在控制台中為您提供的十進制渲染已在打印時轉換為字符串,即使該字符串已由print函數隱含。 將0.5和0.5000000作為浮點數以其二進制表示形式存儲之間沒有區別。

在編寫應用程序代碼時,最好不要擔心演示文稿,直到演示文稿到達最終用戶為止,在這種情況下,如果只是隱式地將演示文稿轉換為字符串。 那時,您可能會擔心小數位,甚至根本不用十進制顯示。

暫無
暫無

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

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