在Python3.x中显示到两个小数点。。。但也没有这些小数,如果适用怎么办?

2024-09-30 01:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python 3.8中,我试图获得一个浮点值,如下所示:

  • 如果数字的小数点超过2个,则应四舍五入至 小数点后2位
  • 如果数字有一个小数点,则应 仅显示为一个小数点
  • 如果数字没有小数点 点,它不应该显示为小数点

我知道“圆”。如果我有这个计划:

print ('input a number')
chuu = float(input())
chuu = round(chuu,2)
print (chuu)
  • 在3.14中输入3.141结果(良好)
  • 在3.1中输入3.1结果(良好)
  • 在3.0中输入3个结果(糟糕,我想要3个)

我也知道我可以做到这一点:

print ('input a number')
chuu = float(input())
print('{0:.2f}'.format(chuu))

这也没有得到我想要的:

  • 在3.14中输入3.141结果(良好)
  • 在3.10中输入3.1结果(不好,我想要3.1)
  • 在3.00中输入3个结果(糟糕,我想要3个)

我如何解决这个问题


Tags: formatnumberinput数字float计划浮点print
3条回答

你可以这么做

print ('input a number')
chuu = float(input())
chuu = round(chuu,2)
if int(chuu)==chuu:
    print(int(chuu))
else:
    print(chuu)

如果您只想将其用于打印,那么下面的方法很有效

from decimal import Decimal

print('Input a number: ')
chuu = float(input())

print(Decimal(str(round(chuu, 2))).normalize())

然而,这将把像3.0这样的数字变成3。(不清楚您是否想要这种行为)

可以使用字符串格式的常规格式类型

print('input a number')
chuu = float(input())
print('{:g}'.format(round(chuu, 2)))

相关问题 更多 >

    热门问题