如何在不显示小数点后的零的情况下打印整数?

4

我想以以下格式打印整数(例如39):39。 它不能是str类型的对象,例如'39.',而是一个数字

例如,n = 39.0应该像39.这样打印。

n = 39.0
#magic stuff with output
39.

我尝试使用 :.nf 方法(显然是 :.0f -- 不工作),print(float(39.)) 或直接 print(39.)。 在第一种情况下,它看起来像 39,在第二和第三种情况下是 39.0。 我也试过 float(str(39) + '.'),显然不管用。
抱歉,如果这是个愚蠢的问题,我已经尝试解决它好几个小时了,仍然找不到任何信息。

print(int(39.0))? - Chris Doyle
1
OP 希望得到 . ,而不带有额外的 0,但变量类型仍为 int。 - Celius Stingher
2
据我理解,小数点是十进制数左右两部分的分隔符。如果没有右边部分,因为这个数是整数,那么就没有理由打印小数点,所以如果没有易于格式化的代码来实现,这其实是有道理的。 - manassehkatz-Moving 2 Codidact
你好,欢迎来到SO。只是为了明确,您想要打印“.”,并且不是寻找str类型吗? - StonedTensor
是的,我需要一个带有小数点但小数点后没有零的整数。我知道这听起来不合理,但不幸的是这是我需要的输出结果。 - Czenra
肯定不是 str 类型。 - Czenra
2个回答

8
格式规范迷你语言 (我强调) 中得知: '#' 选项使转换使用“替代形式”。不同类型的替代形式定义不同。该选项仅适用于整数、浮点数和复数类型。对于整数,当使用二进制、八进制或十六进制输出时,此选项会将相应前缀 '0b'、'0o'、'0x' 或 '0X' 添加到输出值中。 对于浮点数和复数,备用形式导致转换结果始终包含小数点字符,即使后面没有数字。通常,在这些转换的结果中,只有在其后跟随数字时,小数点字符才会出现。此外,对于 'g' 和 'G' 转换,结果中不会删除尾随零。
>>> n=39.0
>>> print(f'{n:#.0f}')
39.

0

打印(int(n))

或者你可以尝试:

n = n // 1 print(f"{n}."

)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接