Python用分隔符(分组)格式化浮点十进制数字,例如下划线

rvpgvaaj  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(102)

如果在Python 3.8中可以像这样打印浮点数:

4321.000056 → 4_321.000_056

我知道整数部分有下划线分隔(分组),例如1_000_000,但我四处寻找,真的找不到如何在浮点数中实现小数部分。
有一些讨论(link1link2),但似乎只是Python功能请求,但如果你知道如何像示例中那样打印float,如果你能与我们分享就太好了。

uhry853o

uhry853o1#

似乎没有一个内置的方法来做到这一点,但你可以创建自己的函数来以这种方式处理浮点数:

def float_bars(val):
    if not isinstance(val, float):
        raise TypeError(f"Expected float, got {type(val)}")
    decimal, fraction = str(val).split('.')
    fraction = f"{int(fraction[::-1]):_}"[::-1]
    return f"{int(decimal):_}.{fraction}"
        
print(float_bars(4321.000056))

输出:

4_321.000_056

相关问题