Вычислить сумму странного поведения с плавающей запятой [дубликат]Python

Программы на Python
Anonymous
Вычислить сумму странного поведения с плавающей запятой [дубликат]

Сообщение Anonymous »

Я пробую три метода, чтобы получить сумму чисел с плавающей запятой. один метод — сумма панд, другой — цикл for, последний — math.fsum. Похоже, последний метод дает правильные результаты. но первый и второй метод получают разные значения.
import pandas as pd
import math

def main():
data = [61.1, 19.3, 15.7, 3.07, .255, .158, .102, .072, .0608,
.0048, .0416, .0368, .0288, .0128, .0112, .0096, .0096,
.008, .0048, .004, .004, .0032, .0024, .0006]

df = pd.DataFrame(data,columns=['value'])
print(df['value'].sum())

sum = 0
for x in data:
sum += x
print(sum)

print(math.fsum(data))

main()

Текущие результаты:
99.99999999999999
100.00000000000004
100.0

Ожидаемые результаты:
100.0
100.0
100.0


Подробнее здесь: https://stackoverflow.com/questions/782 ... vior-weird

Вернуться в «Python»