Я хотел бы знать, как правильно читать поля с плавающей запятой, используя Quickfix (python).Я получал строку, затем приводил ее к числу с плавающей точкой.
Например:
>>> m = fix.Message()
>>> m.setField(fix.BidPx(1.12))
>>> m.getField(fix.BidPx()).getString()
'1.12'
>>> float(m.getField(fix.BidPx()).getString())
1.12
Способ, описанный выше, отлично работает для чисел с плавающей точкой с точностью менее 15 цифр.Но я получил следующую ошибку для чисел с плавающей запятой с точностью до 15 цифр:
>>> m = fix.Message()
>>> m.setField(fix.BidPx(1.123456789123456))
>>> m.getField(fix.BidPx()).getString()
'\x00\xe1}\xf5\x82U\x00\x0078912346'
>>> float(m.getField(fix.BidPx()).getString())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: