This approach will create problems with bigger values like 2147483646.5 for singed int field and 4294967294.9 for unsigned int. Are you going to save that much big vaues?
How to fuck up your schema; I want to store a decimal into an int without loosing precision. Well you DON'T thats why the DB has an decimal datatype. Next you will be putting all you datatypes into a Varchar which is even better minimal datatype usage, minimum data validation rules in effect, maximum side effects.
This is likely a localization problem. 3,99 is a European style currency display. If the number requires 3.99, that says to me that the localization of the DB is set to something like US, instead of the real target country. That may require a full reinstall of the DB to fix. Check the settings in your control panel.