【问题标题】:Python Increment Floating Number 1.9 to 1.10 instead of 2.0Python 将浮点数 1.9 递增到 1.10 而不是 2.0
【发布时间】:2014-11-10 01:21:04
【问题描述】:

我正在尝试将 1.9 的浮点值增加到 1.10。我的逻辑是如果 value == 1.9 然后增加 0.10,但它会一直保持到 2.0。

有人知道让它显示 1.10 的逻辑吗?

【问题讨论】:

  • 请发布您的代码
  • 也许你根本不想要浮点数,你想要一个由点分隔的两个整数的字符串。如果您正在处理版本号,请不要尝试将它们设为浮点数。
  • 1.9 = 19/10 > 11/10 = 1.10
  • str(float(line.split("$Revision: ")[1].split()[0]) + 0.1)
  • @user3495404 这很简单。不要使用float 作为版本号。它们不是浮点数。

标签: python floating-point increment


【解决方案1】:

1.9 + 0.1 不等于 1.10。

如果您想要这些语义,您可能不应该使用浮点数(因为它们依赖于正常工作的标准数学。)

相反,将您的组件存储为一对ints。

例如:

ver = "1.9"
ver = [int(x) for x in ver.split('.')]
print 'Version {0[0]}.{0[1]}'.format(ver)    # Prints  "Version 1.9"

ver[1] += 1
print 'Version {0[0]}.{0[1]}'.format(ver)    # Prints  "Version 1.10"

【讨论】:

    猜你喜欢
    • 2022-06-29
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多