I have a QuickFIX initiator getting 1.23E-6 in tag 270 from market data. Then I saw QuickFIX/J throw the following error:

Rejecting invalid message: quickfix.IncorrectDataFormat: Incorrect data format for value, field=270

Any idea how to avoid the rejection and parse the correct value?

I also receive the scientific format of number from my 35=8 message in tag 44 (price), but I could just getString then convert them into BigDecimal with no issue.

The real problem here is that your counterparty should not be sending a scientific-notation value in that field. The field has type “Price”, and per spec, that should be a whole or decimal number, thus that’s what the QF engine is validating.

So, I don’t know who your counterparty is, but maybe you want to check with their support and see if this might be a legit bug on their end.

(I can’t explain why your 35=8/tag-44 message is being accepted. There must be a detail to your situation that I’m not aware of.)

If you need to work around this anyway: An easy cheat way to make the engine accept this message is to simply change the field’s type to “string” in your Data Dictionary xml file. Of course, that will require you to always explicitly convert the string to BigDecimal, but it sounds like you will not have a problem with that.