Я пробую три метода, чтобы получить сумму чисел с плавающей запятой. один метод — сумма панд, другой — цикл 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