requered ints and floats

Imported from previous forum

[ original email was from Yevgeniy Tovshteyn - yevgeniy@javtech.com ]
If there are required fields of type int and float (for example CumQty in ExecutionReport) that should be zero in particular FIX message, should they be displayed in a FIX message(for example “14=0”)? Is it requirement to display them? Could we assume, that if sender doesn’t put required fields of type int and float into FIX message, he means they are set to zero? I think, that the rule “[blank = 0] & [0 = blank] for requered ints and floats” would be a good convention, which will avoid a lot of confusions

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> If there are required fields of type int and float (for example CumQty in ExecutionReport) that should be zero in particular FIX message, should they be displayed in a FIX message(for example “14=0”)? Is it requirement to display them? Could we assume, that if sender doesn’t put required fields of type int and float into FIX message, he means they are set to zero? I think, that the rule “[blank = 0] & [0 = blank] for requered ints and floats” would be a good convention, which will avoid a lot of confusions
>

If the field is listed in the message description as required, then it absolutely must appear in the message, even if it serves no purpose in that message. (I.e. a CumQty is obviously zero when an order is new.) Some people may look at the list of required fields and use them to validate the message, and they could reasonably reject such a message just because it doesn’t contain a required field.

The spec defines a float as having an "optional decimal point and sign" so saying tag=0 or tag=0.0 for a required float field both should be valid.