I managed to find a work around for this....
for every calculated column in the sharepoint list i created another number field and set the correct decimal places. Then i hid these fields from the input form and created a workflow which would activate when a new item was added or existing item was changed. the workflow set the new fields value with the value from its corresponding calculated field. (Not ideal as i now have two columns displaying the same data)
i then updated my data connections in infopath to display these new fields, deleted the calculated column controls from the repeating table and put these new column controls in, in thier place.
All works and the format button is not greyed out on these new columns as they are not calculated columns so i can change the formatting.
This is probably not the best way to do it but it works. If anyone knows how to be able to format a calculated column field in infopath then i would be interested to know.
Hope this has helped someone else like me!