That’s caused by how computers handle floating point (decimal) numbers. floating-point-gui.de for the nitty-gritty details.
The most robust way to fix the issue is to store the amount of money in cents instead, so you’d start with 60000 cents and make payments of 780 cents. Then you can print it as euros with <<print $Money/100>>. If handling the amounts as cents feels unwieldy you can add widgets that accept the amount in euros but handle it as cents inside the widget (e.g. in the MoneyDown widget <<set $Money -= $args[0] * 100>> and so on.)