簡體   English   中英

使用%運算符在python中打印浮點數

[英]printing floating point numbers in python using % operator

當我想打印浮點數時,我對格式化字符串感到有些困惑。 例如,當我有%6.2f我希望打印功能給我一個6位數字的數字,其中小數部分為2位數字。 因此,當我編寫以下語句時:

mRa = 569.34643865
print("result %6.2f" %mRa)

結果將是result 569.35

但是,當我將代碼的第二行更改為print("result %1.0f" %mRa) ,結果是result 569 ,而我希望只看到數字的第一位。 此外,如果將代碼的那一行更改為print("result %3.0f" %mRa) ,結果將完全相同。 如果有人可以向我解釋為什么我們會有這樣一個(相互矛盾的)觀察結果,我將不勝感激。

根據文檔%1.0f1最小字段寬度(在“ printf樣式的字符串格式設置”部分的列表中的第4項)。 這是用於該字段的最小字符數。

最小字段寬度旨在幫助程序格式化表格-正確計算出所需最大空間的程序可以將其用作字段寬度,並且具有不同值的行在連續打印時將顯示對齊。 但是,如果值超過最小字段寬度,則將顯示正確的值(通過使用更多字符,將使表對齊混亂)。 如果程序沒有足夠的字段寬度,通常最好使顯示混亂而不是錯誤顯示,因此該字段將使用更多字符,而不是剪切數字。

要剪輯一個字段使其僅顯示某些數字,您必須自己操作字符串。

右邊的剪切數字被認為是可以接受的,因為這種剪切的結果會使顯示的值發生少量變化。 (盡管如此,由此產生的不正確的數字顯示使一代又一代的程序員迷惑了浮點運算的工作原理。)因此,精度字段( %6.2f2 )指定了用於精度的位數,而不是最小位數。要使用的數字。

暫無
暫無

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

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