The data formatting is working as it should, just not as you want it to.
Specifying a fixed number of decimals, sets it for all values in that field. Most users would not consider £110.00 to be "undesirable, but rather the expected and preferred result of this formatting option as it allows you to right justify a column made of this field and the numbers then properly align with each other.
"Do not display number if zero" produces an empty field if the value of the number, not adigit, is zero. If you enter 0 in the field, it will display as empty instead of as 0.00.
The formatting that you want cannot be achieved with data formatting options. You'd either need to use two copies of the field placed on top of--each with different data formatting options with conditional formatting making one field invisible and the other visible, or you'll need to use a calculation field that takes the value of this field and produces a text result with the desired formatting.
Sounds like you need to remove the fixed # of decimal places, because this is always going to give you 2 decimal places. The do not display # if Zero will only work if the number is zero. It will not display 0.00