2013-09-06 5 views
0
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, средние значения и подкласс

Однако я не уверен, как правильно оценивать это, или почему этот конкретный результат достигнут.

EDIT: Python 3,2

+0

который питон версия ваша? У меня 2.6.6 и с теми же входами я получаю 1.2 – cjdcordeiro

+1

@cjdcordeiro: Python 3, судя по функции 'print()'. –

+0

Это не вещь python, это плавающая вещь IEEE. – cmd

ответ

3

Использование decimals:

import decimal 

first = decimal.Decimal('1.1') 
second = decimal.Decimal('1.3') 
avg = (first + second)/2 
print(avg) 
Смежные вопросы