That is a bug in both $round and $calc D:
Also heres a bug in yours:
//echo -ag $money(234803298432432432432343324032.9999999999999999999999999999)
returns: $234'803'298'432'432'432'432'343'324'032.1
When it should return a solid $234'803'298'432'432'432'432'343'324'033
This is why you should $round it all together first, but then you get the 0's because the numbers too large.