Se você precisa de exatidão, você não pode usar float
e acho que sabe disso. Se não precisa, pra que tentar usar outra coisa?
Ponto flutuante não gasta necessariamente mais RAM. Inclusive muitos pregam que só deveria ter double
que a chance é maior de gastar RAM demais. Se for para pensar em RAM deveria usar um half float , correndo o risco de não conseguir representar todos os números que precisa. Em muitos casos fazer um de forma decimal pode gastar o mesmo de RAM.
Em números exatos é quase certo que a impelmentação use inteiro, pelo menos dois deles para montar o número completo.
O uso do ponto flutuante binário (e não o decimnal) se dá mais por performance. Ainda que manipular inteiros pode ser mais rápido e alguns casos um tipo de ponto fixo ou flutuante decimal pode até ser mais rápido que o binário. Mas tem casos que fará diferença ter uma forma mais acelarada por hardware.
É possível ter ponto flutuante binário por software apenas, mas faz pouco sentido usar na maioria dos cenários.
Nem sempre truncar pode ser uma boa solução.
https://pt.stackoverflow.com/q/219211/101.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).