如何打印一个浮点与下划线分隔千分之一?



如果可能的话,我想格式化(通过f-string或任何旧的方式)一个浮点数,以便它的千分之一被下划线分隔。

我知道你能做到:

print(f"{10000000:_}")
# 10_000_000

但是我想:

print(f"{7.012345678:<something>}")
# 7.012_345_678

希望有人有比我更好的主意,但如果情况越来越糟,你可以这样做:

def format_decimals(f):
s = str(f)
parts = s.split('.')
if len(parts) != 2:
raise ValueError(f'{s} not a valid decimal number')
n,d = parts
d = '_'.join(d[i:i+3] for i in range(0,len(d),3))
return f'{n}.{d}'
import math
print(format_decimals(math.pi)) #3.141_592_653_589_793

最新更新