【问题标题】:python float to integer list mismatchpython浮点到整数列表不匹配
【发布时间】:2014-11-16 20:10:02
【问题描述】:

我正在编写一些需要将实数转换为整数的 python 代码:

相关代码部分:

for q in range(len(diff2FittedFunc[:])):
    moveBack=(10.0/len(diff2FittedFunc[:]))*q
    rampPosition = 10-moveBack 
    arrayPos=int(rampPosition*10)
    print rampPosition,arrayPos

我期望(并且想要)打印的列表以 1 为增量输出从 100 到 1 的值列表。检查列表后,我注意到存在缺失值和重复值,例如38.

谁能解释为什么会发生这种情况以及我该如何纠正它?

(仅供参考:len(diff2FittedFunc[:] = 100

非常感谢您。

输出:

- 10.0 100
- 9.9 99
- 9.8 98
- 9.7 97
- 9.6 96
- 9.5 95
- 9.4 94
- 9.3 93
- 9.2 92
- 9.1 91
- 9.0 90
- 8.9 89
- 8.8 88
- 8.7 87
- 8.6 86
- 8.5 85
- 8.4 84
- 8.3 83
- 8.2 82
- 8.1 81
- 8.0 80
- 7.9 79
- 7.8 78
- 7.7 77
- 7.6 76
- 7.5 75
- 7.4 74
- 7.3 73
- 7.2 72
- 7.1 71
- 7.0 70
- 6.9 69
- 6.8 68
- 6.7 67
- 6.6 66
- 6.5 65
- 6.4 64
- 6.3 63
- 6.2 61
- 6.1 61
- 6.0 60
- 5.9 58
- 5.8 58
- 5.7 57
- 5.6 56
- 5.5 55
- 5.4 53
- 5.3 53
- 5.2 51
- 5.1 51
- 5.0 50
- 4.9 48
- 4.8 48
- 4.7 46
- 4.6 46
- 4.5 45
- 4.4 43
- 4.3 43
- 4.2 41
- 4.1 41
- 4.0 40
- 3.9 38
- 3.8 38
- 3.7 36
- 3.6 36
- 3.5 35
- 3.4 33
- 3.3 33
- 3.2 31
- 3.1 30
- 3.0 30
- 2.9 28
- 2.8 28
- 2.7 26
- 2.6 25
- 2.5 25
- 2.4 23
- 2.3 23
- 2.2 21
- 2.1 20
- 2.0 20
- 1.9 19
- 1.8 17
- 1.7 16
- 1.6 15
- 1.5 15
- 1.4 14
- 1.3 12
- 1.2 11
- 1.1 10
- 1.0 10
- 0.9 9
- 0.8 7
- 0.7 6
- 0.6 5
- 0.5 5
- 0.4 3
- 0.3 2
- 0.2 1
- 0.1 0

【问题讨论】:

    标签: python floating-point integer data-conversion


    【解决方案1】:

    它向上舍入浮点数但截断整数。试试这个,它应该会告诉你问题:

    尝试将最后一行更改为

    print "{:.2f}".format(rampPosition),arrayPos

    【讨论】:

    • 我无法通过应用您的线路来确定此问题的解决方案。
    • 好的。您可以在更改行的情况下附加运行时获得的输出吗?
    【解决方案2】:

    我更喜欢使用字符串来完成这样的任务。我认为该功能只是删除小数点。 这是我的函数版本:

    def func(real):
        temp=str(real)
        temp=list(temp)
        temp.remove(".")
        temp="".join(temp)
        return int(temp)
    

    【讨论】:

      猜你喜欢
      • 2015-03-17
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多