2 回答

TA貢獻1803條經驗 獲得超3個贊
您需要將字符串括在括號中:
print((" {0:." + str(_NACHKOMMASTELLEN) + "f}").format(round(V_values[0], _NACHKOMMASTELLEN)), end='') ^ ^
所以這" {0:." + str(_NACHKOMMASTELLEN) + "f}"
將被格式化而不是"f}"

TA貢獻1909條經驗 獲得超7個贊
如果你低于 3.6 你可以雙重格式化:
_NKS = 3? ?# shortened for 79 line char limit
V_values = [3.123456789]
print("? {{:.{}f}}".format(_NKS ).format(round(V_values[0], _NKS )))
第一format放3的就地{}并轉換雙{{和}}單{和}-所產生的字符串{:.3f},然后用于第二format。
格式比我好。這也適用:
print("? {:.{}f}".format(round(V_values[0], _NKS ),_NKS ))
輸出:
? 3.123
如果您已經使用 3.6,則不需要 - f-strings 可以更好地處理它:
_NACHKOMMASTELLEN = 3
V_values = [3.123456789]
print(f"? {round(V_values[0], _NACHKOMMASTELLEN):.{_NACHKOMMASTELLEN}f}")
V_values = [3.1]
print(f"? {round(V_values[0], _NACHKOMMASTELLEN):.{_NACHKOMMASTELLEN}f}")
輸出:
? 3.123
? 3.100
添加回答
舉報