Sitecore apparently has an issue in their code with it using int.Parse instead of float.Parse
I've found place in the code where the error appears. It's in the Sitecore.Analytics.Data.VisitProfile.Parse() method. It uses int.Parse instead of float.Parse while reading profile values from database. This issue was fixed in Sitecore 6.6.0 Update-4. Please see reference number 376088 in release notes. Unfortunately, there is no easy way to fix the code. Please consider upgrading your solution to 6.6.0 Update-4. In the meantime I would suggest to use larger score values in your profiles, so that resulting value is always be greater than 1. This approach works on my side. Please let us know in case you have any troubles with that.
To resolve the issue ended up just multiplying the values we were using by 10 to avoid sitecore's int as opposed to float issue.