Executando verificação de segurança...
5

Porque usamos float?

Para quem conhece um pouco sobre a história da computação, deve conhecer o porque de usarmos float nos dias atuais.

Pra quem não sabe o float nas CPU'S existia atráves de chips de calculo externos a CPU pois eram muito pouco utilizados.

Somente com o advento do mundo 3D e de simulações, CAD e outros que viemos a utilizar o float integrado a nossas cpus atuais.

Mas aqui eu deixo a pergunta, se você utilizar Javascript, Python, Java, ou qualquer outra linguagem que não trata muito bem o float e você o utiliza no seu calculo, porque?

Gastaria um pouco mais de memória ram, mas seria muito mais seguro utilizar int ou bigint para fazer calculos de preços, não? Levando em consideração alguns problemas de soma de float como o famoso: 0.1 + 0.2 == 0.3 resultando em false. Se fosse em consideração fazer calculo de rendimento e ocorresse um erro assim, você seria responsável por ele? ou no caso utiliza um número inteiro truncado em virgula? 0,1 + 0,2

como nesse pseudo codigo

01 + 02 = 03

trunc(03, ',') = 0,3  
Carregando publicação patrocinada...
2

Acredito que com a grande quantidade de RAM disponivel, dev atuais não se importam tanto com kb sendo desperdiçados com floats. E também vale sempre lembrar que floats nem sempre são precisos. Ainda mais em javascript xD

2

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).