【发布时间】:2020-03-21 11:22:31
【问题描述】:
目标是使用 f 字符串根据数字的大小将浮点数舍入到不同的小数位数。
是否存在类似于以下函数的内联 f 字符串格式?
def number_format(x: float):
if abs(x) < 10:
return f"{x:,.2f}" # thousands seperator for consistency
if abs(x) < 100:
return f"{x:,.1f}"
return f"{x:,.0f}" # this is the only one that actually needs the thousands seperator
【问题讨论】:
-
请问您为什么要这样做?
-
您是在不使用任何函数的情况下尝试这样做,还是可以使用仅计算精度并在 f 字符串中使用该输出的函数?
-
@AlexanderCécile 为什么要这样做?显示没有多余精度的距离。 0.25 公里对我来说是有意义的,而 1,234.25 公里将与 1,234 公里一样准确
-
@JackFleeting 我问这个问题是为了检查是否有内置的方法可以做到这一点,这样我就不必依赖我自己的函数:如果它在标准库中,我更喜欢使用它。
-
@cjm 有道理。不幸的是,我不知道有更好的方法来做到这一点:/至少你可以在 f-string 中调用函数,所以它可能会更糟。
标签: python python-3.6 string-formatting number-formatting f-string