First, not aware of a way to control number of places for a float. Second, it actually appears to be a bug.
I took a slightly modified version of your macro...
Macro test
define number as float
number = 1.555
message number * 2
End Macro
Which comes out to 3.109. If I switch it to 1.5555 as below...
Macro test
define number as float
number = 1.5555
message number * 2
End Macro
I then get 3.111 which is correct.
I guess I've never had to get to that level or the inconsistency was just never caught by our users. You may want to contact support.
Note that I'm on 7.3, M031 build 1.