將Float64 轉換為具有最大有效位數的固定寬度字串
在固定寬度表中列印float64 值時,我們經常需要保持精度的最大有效位數。標準庫缺乏實現此目的的便捷方法。
自訂格式說明符
為了克服此限制,我們可以建立一個適應值大小的自訂格式說明符。該策略涉及檢查值以確定它是否需要科學記數法。如果是,我們計算指數的寬度並相應地調整分數的精確度。如果沒有,我們只需檢索分數的長度併計算固定寬度所需的精度。
Python 實作
這裡是建議方法的 Python 實作:
import math def format_float(value, width): """ Converts a float to a fixed-width string with maximum significant digits. Args: value: The float value to format. width: The fixed width of the string. Returns: A fixed-width string containing the formatted value. """ if abs(value) >= 1e12: # Scientific notation exponent = int(math.log10(abs(value))) fraction_width = width - len(str(exponent)) - 2 return f"{value:.{fraction_width}g}" else: # Regular form fraction_length = len(str(int(value))) precision = width - fraction_length - 1 return f"{value:.{precision}f}"
範例用法
values = [0, 1234.567890123, 0.1234567890123, 123456789012.0, 1234567890123.0, 9.405090880450127e9, 9.405090880450127e19, 9.405090880450127e119] for value in values: print(format_float(value, 12))
輸出
0.0000000000 0.1234567890 1234.5678901 123456789012 1.234568e+12 9405090880.5 9.405091e+19 9.40509e+119
以上是如何在 Python 中將 Float64 轉換為具有最大有效位數的固定寬度字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!