【问题标题】:Python: how to turn string to int then add decimal to numberPython:如何将字符串转换为 int 然后将小数添加到数字
【发布时间】:2015-10-01 03:38:18
【问题描述】:

我有一个在 python 中加载的文本文件,我加载文件并拆分值。文本文件包含以下内容...

   678John Jones          23501289100005670
   999Arthur Dudley-Smith 40000956064012300
  5789Bob Billards        04600230190048945
543780Helen W Anderson    53001945045000990

例如,我创建了一个名为 Hours[] 的数组,然后将数字附加到它...

Hours.append(int(line[26:30]))

这样做会使 Hours[0] 的值为 2350,但我希望有一个小数位,所以它应该是 23.50

我不知道该怎么做,我能得到的任何帮助都会很棒

【问题讨论】:

  • 你能除以 100 吗?

标签: python


【解决方案1】:

只需使用浮点数:

Hours.append(float(line[26:30]) / 100.0)

或者,如果您要处理大数,您可能需要查看小数模块。

【讨论】:

    【解决方案2】:

    取第一位,一个点,第二位:

    >>> line = '   678John Jones          23501289100005670'
    >>> line[26:28] + '.' + line[28:30]
    '23.50'
    

    以一种方式将其转换为数字:

    >>> from decimal import Decimal
    >>> Decimal('23.50')
    Decimal('23.50')
    

    如果您必须将其转换为浮点数,则尾随零并不真正存在 - 23.5 == 23.50,只有当您将其格式化为字符串并要求尾随零时才会出现。

    >>> int(line[26:28]) + 0.01* int(line[28:30])
    23.5
    
    >>> '{0:0.2f}'.format(23.5)
    '23.50'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      相关资源
      最近更新 更多