我有以下要在变量可用的条件下打印的f字符串:
f"Percent growth: {self.percent_growth if True else 'No data yet'}"
结果是:
Percent growth : 0.19824077757643577
因此,通常我会使用类型说明符来实现浮点精度,如下所示:
f'{self.percent_growth:.2f}'
这将导致:
0.198
但这与if语句在这种情况下是困惑的。要么因为以下原因而失败,要么:
f"Percent profit : {self.percent_profit:.2f if True else 'None yet'}"
if语句变得不可访问。
或以第二种方式:
f"Percent profit : {self.percent_profit if True else 'None yet':.2f}"
每当条件导致else子句时,f字符串就会失败。
所以我的问题是,当f字符串可以产生两种类型时,如何在f字符串内应用浮点精度?
最佳答案
您可以为第一个条件使用另一个f字符串:
f"Percent profit : {f'{self.percent_profit:.2f}' if True else 'None yet'}"
诚然不理想,但确实可以做到。