如何在数字的小数部分中使用千位分隔符

How to use a thousand separator in the fractional-part of a number

提问人:Ferdinando M. Ametrano 提问时间:11/7/2023 更新时间:11/7/2023 访问量:32

问:

我使用的数字必须具有 8 位精度(使用十进制求解),我很想用千位分隔符打印小数部分。

我目前使用生成“100_000.12345678:016_.8f}”的f“{10000.12345678”,但我想获取“100_000.123_456_78”

Python 数字格式化

评论

1赞 Thomas Weller 11/7/2023
恕我直言,它不可用。自己实现。

答:

1赞 CtrlZ 11/7/2023 #1

不能直接使用 f-string 格式规范执行此操作。不过,您可以通过使用内置的 textwrap 模块“手动”执行此操作。

from textwrap import wrap

def format(n: float, w: int=8) -> str:
    a, b = f"{n:_.{w}f}".split(".")
    return a + "." + "_".join(wrap(b, 3))

print(format(100000.12345678))

输出:

100_000.123_456_78