This happened to a m8s website in VirtueMart 1.1.3. The issue here was that although all the prices lost their float/decimal and were rounded up to the nearest integer...
At first we thought this was due to installing a Virtuemart UK Credit Card Payment Module (vm-ukcreditcard). A lot of forums were suggesting to change the number_format to convert any number to a currency or two decimal places. Another suggestion was to alter the main virtuemart database table (jos_vm_prodcut_price)...
Don't do any of these things!
After modifying tax rates and ensuring these were all the same, we also found that this was due to a country not being specified under the Store configuration within VirtueMart.