Отдел возвращает неверный результатPython

Программы на Python
Anonymous
Отдел возвращает неверный результат

Сообщение Anonymous »

Я пытаюсь узнать больше о Python. См. код ниже:

Код: Выделить всё

coinPair=['ZRX-BTC','AAVE-BTC']
fromDate= date.today() + timedelta(days=-20)
toDate = date.today()
coinPairData = yf.download(coinPair,fromDate,toDate)['Adj Close']
arrayLength = len(coinPairData.values)
baseCurrencyCurrentPrice= coinPairData.values[arrayLength-1][0]
quoteCurrencyCurrentPrice= coinPairData.values[arrayLength-1][1]
После запуска этого кода; baseCurrencyCurrentPrice содержит значение:

Код: Выделить всё

np.float64(0.0017160000279545784) and quote currency price contains the value: np.float64(4.999999873689376e-06).  I then tried this:

r1=baseCurrencyCurrentPrice/quoteCurrencyCurrentPrice
r1, затем содержит значение: np.float64(343.2000142608773). Я выполнил математические расчеты и мог ожидать, что ответ будет примерно таким: 0,0003400068001360027, как возвращает приведенный ниже код (когда основание и кавычка преобразуются в три десятичных знака):

Код: Выделить всё

value1=float(0.0017)
value2=float(4.9999)
r1 = value1/value2
Я также пробовал добавить это в импорт:

Код: Выделить всё

from decimal import *
а затем попробовал изменить приведенный выше код следующим образом:

Код: Выделить всё

baseCurrencyCurrentPrice= Decimal(coinPairData.values[arrayLength-1][0])
quoteCurrencyCurrentPrice= Decimal(coinPairData.values[arrayLength-1][1])
Однако r1 по-прежнему содержит значение больше 343, т. е. десятичное ('343.2000142608772840595769976')
У меня не так много опыта работы с плавающей запятой. количество баллов, поэтому используйте это как возможность узнать больше. Я понимаю, что, возможно, здесь есть что-то фундаментальное, чего я не понимаю.

Подробнее здесь: https://stackoverflow.com/questions/787 ... ong-result

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