簡體   English   中英

與format()對齊時,從float去除尾隨零

[英]Strip trailing zeros from float while aligning with format()

我正在嘗試將浮點數存儲到有時可能包含尾隨零的文件中。

應用{:g} ,結果是預期的:尾隨的零被刪除。 當我嘗試在文本文件中對齊浮點數時,問題就來了,在這種情況下,我使用{:>10.0g} ,結果是用科學記數法寫的浮點數,而不是僅去除尾隨零。

這是MWE:

a = 546.0
b = 6785.35416

with open('format_test.dat', 'a') as f_out:
    f_out.write('{:g} {:>15.3f}'.format(a, b)) # <-- NO ZEROS BUT NOT ALIGNED
    f_out.write('\n')
    f_out.write('{:>10.0g} {:>15.3f}'.format(a, b)) # <-- ALIGNED BUT IN SC NOTATION

輸出:

546        6785.354
     5e+02        6785.354

有什么辦法可以在format()端修復此問題,而無需在傳遞前修改浮點數?

g會根據值的大小自動切換為科學計數法(請參閱docs )。 您可以通過對兩個值都使用f來獲得所需的值:

>>> '{:>10.0f} {:>15.3f}'.format(546.0, 6785.354)
'       546        6785.354'

暫無
暫無

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

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