python 使用总固定位数格式化数字

xurqigkl  于 2023-11-16  发布在  Python
关注(0)|答案(1)|浏览(127)

我需要有一个十进制数格式与一个确切的数字,计数两位数字的左边和右边的小数点。
5位数示例:

  • 1.0000(左1位+右4位)
  • 10.000(左2位+右3位)
  • 100.00(左3位数+右2位数)
  • 1000.0(左4位+右1位)

我可以定义一个固定数量的小数点,

'{:.4f}'.format(my_num)

字符串
或者用f字符串表示法

f'{my_num:.4f}'


但这不是我想要的,我不想要固定的小数点,我想要固定的总位数,或者如果你喜欢,数字具有相同的字符串长度)
我可以计算出小数点的个数

n_decimals = 5 - len(str(int(my_num)))


但是我不知道如何指定变量的位数

f'{my_num:.{n_decimals }f}'   # doesn't work

f'{:.{my_num}f}'.format(my_num)  # doesn't work either


此外,必须通过转换为int,然后是string,然后计算长度来计算小数点的数量是很麻烦的。
有没有办法做到这一点?

xzlaal3s

xzlaal3s1#

你能把输出切成薄片吗?

>>> '{:.10f}'.format(1)[:6]
'1.0000'

>>> '{:.10f}'.format(10)[:6]
'10.000'

>>> '{:.10f}'.format(100)[:6]
'100.00'

字符串

相关问题