【问题标题】:Converting strings into float and integers (if is necessary) in Python在 Python 中将字符串转换为浮点数和整数(如果需要)
【发布时间】:2020-06-30 14:11:41
【问题描述】:

我必须调用一个 API,它有时会以字符串格式返回我的数值,"288" 而不是 288,或 "0.1523" 而不是 0.1513。有时,我会得到正确的数值,39

如何使函数将其格式化为正确的值?这意味着:

  • 如果我得到 "288" 将其转换为整数:288
  • 如果我得到 "0.323" 将其转换为浮点数:0.323
  • 如果我得到288,请保持原样(它已经是一个整数)。
  • 如果我得到0.323,请保持原样(它已经是浮点数了)。

这是我的尝试。问题是这也将我所有的浮点数转换为整数,我不想要这个。有人可以帮我吗?

def parse_value(value):
    try:
       value = int(value)
    except ValueError:
        try:
            value = float(value)
        except ValueError:
            pass

提前致谢

【问题讨论】:

  • 为什么要区分 float 和 int?对于大多数用例,float(value) 就足够了。

标签: python python-3.x string integer


【解决方案1】:
def parse_value(value):
    try:
       print(type(value))
       if type(value) is float:
           print(value)
       elif type(value) is int:
           print(value)
       elif type(value) is str:
           value = float(value)
           print(value)

    except ValueError:
        try:
           print(value)
        except ValueError:
            pass

【讨论】:

    【解决方案2】:

    使用以下:

    def convert(self, value)
        a=value
        b=float(a)
        if(b==int(b)):b=int(b) 
        
        print(b)
    

    【讨论】:

      【解决方案3】:

      这对你有用吗?

      def parse_value(value):
          f = float(value)
          r = f if f != int(f) else int(f)
          return r
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        • 2015-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-28
        相关资源
        最近更新 更多