про fixed point, floating point. правда мало, что сказано о том, как с этим бороться. но первый и самый простой способ это домножать и делить. второй костыль - округлять. третий - использовать пользовательские типы в каких-то либах. в C# например есть decimal, который решает некоторые проблемы.