gpt4 book ai didi

python - 如何在 Python f 字符串中跳过十进制的尾随零?

转载 作者:行者123 更新时间:2023-12-05 02:45:10 28 4
gpt4 key购买 nike

我想在我的 f 字符串中设置精度,但我不希望小数部分中的尾随零。

i = 1002
print(f'{i/1000:.2f}') # 1.00 but this must be 1

i = 1009
print(f'{i/1000:.2f}') # 1.01, this is correct

第一个 print 必须是 1,我预期的行为在第二个 print 中看到,它是 1.01.

我试过 :g 但它适用于第一个 print 但第二个失败。

i = 1000
print(f'{i/1000:.2g}') # 1, this is correct but
i = 1009
print(f'{i/1000:.2g}') # 1, but this must be 1.01

我尝试过的一种方法是 f'{i/1000:.2f}'.strip('.0') 但我想知道是否有更好的方法。

编辑:

在我的实际代码中,如果 i100000 那么分母也将是 100000(i 顺序中的最小数字) words the denominator in my code will always be such that the i//denominator will always yield a single digit。

最佳答案

如果你的字符串只有 float ,那么你可以使用 str.rstrip() (而不是您现在拥有的 str.strip() )。此外,您需要首先使用 '0' 然后使用 '.' 对其进行链式调用,例如 .rstrip('0').rstrip( '.') 处理带有尾随零的整数,例如 10000

但是,如果您的字符串中可以有其他字符,并且您只想为数字去除 0,那么您可以使用嵌套的 f-string 作为:

>>> f"{f'{1002/1000:.2f}'.rstrip('0').rstrip('.')} number"
'1 number'

>>> f"{f'{1009/1000:.2f}'.rstrip('0').rstrip('.')} number"
'1.01 number'

>>> f"{f'{1000:.2f}'.rstrip('0').rstrip('.')} number"
'1000 number'

关于python - 如何在 Python f 字符串中跳过十进制的尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100708/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com