【问题标题】:float shown as float, but integer as integer in python浮点数显示为浮点数,但整数在python中显示为整数
【发布时间】:2020-12-03 08:52:32
【问题描述】:

所以我是新来的..这是一件简单的事情,但我在任何地方都找不到答案..

我希望用户可以输入浮点数,但如果用户输入整数,它将显示为整数,而不是浮点数..

x = float(input('input any number : '))
print(x)

如果用户输入 5

output : 5.0

我希望它只显示 5(不带小数点).. 但用户仍然可以输入浮点数..

input => output
5.3 => 5.3
5 => 5

【问题讨论】:

  • 我已经得到答案了!谢谢!

标签: python floating-point integer


【解决方案1】:

你可以试试decimal.Decimal(而不是float)(取决于你想用这个号码做什么):

from decimal import Decimal

user_input = "5"
x = Decimal(user_input)
print(x) # 5

user_input = "5.3"
x = Decimal(user_input)
print(x)  # 5.3

【讨论】:

  • 我想做一个简单的计算器..当用户输入个位数但出现小数点时会很混乱..但是如果我的计算器不能计算浮点数,那也会是个问题..我'我是编码新手(只有 1 个月)我对模块了解不多.. 但我会努力学习它.. 非常感谢!
  • 可以Decimals计算。
【解决方案2】:

我对你的问题的措辞有点困惑,但我认为你的意思是,如果用户输入一个整数,你希望它被视为(或显示)为一个整数,但如果用户输入一个浮点数,然后您希望它被视为(或显示)为一个浮点数。

这里最好的选择是使用可用于浮点数的is_integer() 方法(我知道它在 python 3 中可用,但不确定 python 2)

>>> 1.4.is_integer()
False

>>> 1.0.is_integer()
True

>>> x = 12.0
>>> x.is_integer()
True

所以使用你原来的例子,你可以这样做:

x = float(input('input any number : '))
x = int(x) if x.is_integer() else x
print(x)

请注意,这让您的用户非常信任只输入浮点数或整数。如果他们输入'foo',那么你的程序将引发ValueError 异常,所以不要忘记在检查后将值转换为float(或int),或者将其添加到包含try-的循环中异常声明。

由于 Python 是围绕这类事情的 try-except 原因构建的,所以这里有一个使用 try-except 块的完整示例,该块仅在用户输入有效值后才会继续:

While True:
    try:
        x = float(input('input any number : '))
        x = int(x) if x.is_integer() else x
        break
    except ValueError:
        print("Invalid Numerical Value (must be float or integer)"

print(x)

【讨论】:

    【解决方案3】:

    使用 float.is_integer()

    x = float(input())
    print(int(x) if x.is_integer() else x)
    

    f-string 和格式化

    x = float(input())
    print(f'{x:g}')
    

    输出:

    >>> 5.3
    5.3
    >>> 5
    5
    

    【讨论】:

      【解决方案4】:

      您可以尝试以下方法吗:

      '%g'%(5.0)
      

      你的情况如下:

      x = float(input('input any number : '))
      print('%g'%(x))
      

      使用.format

      x = float(input('input any number : '))
      print('{0:g}'.format(x))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-16
        • 2015-11-19
        • 1970-01-01
        • 2012-04-29
        • 2020-12-30
        相关资源
        最近更新 更多