【问题标题】:Python, Averages, and Division [duplicate]Python,平均值和除法[重复]
【发布时间】:2013-09-06 15:09:26
【问题描述】:
first = float(input("Enter first number: "));
second = float(input("Enter second number: "));
avg = float((first + second) / 2);
print(str(avg));

使用数字 1.1 和 1.3 作为输入,预期输出为 1.2。但是,我收到的结果是 1.2000000000000002。我知道这与 Python 及其数据类型有关。

但是,我不确定如何正确评估这一点,或者为什么会获得这个特定结果。

编辑:Python 3.2

【问题讨论】:

  • 你的python版本是什么?我有 2.6.6,使用相同的输入我得到 1.2
  • @cjdcordeiro:Python 3,由print() 函数判断。
  • 这真的不是 python 的东西,这是 IEEE 浮动的东西。

标签: python types average division


【解决方案1】:

使用decimals:

import decimal

first = decimal.Decimal('1.1')
second = decimal.Decimal('1.3')
avg = (first + second) / 2
print(avg)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多