Bug Javascript
Todos que me conhecem sabe que eu simplesmente amo javascript. A maior falha da linguagem (na minha opinião) já foi corrigida com o ajax, que permite o acesso a bancos sem dar o “chato” submit.
Imagine uma linguagem de programação em que você só precisa do bloco de notas e um navegador (coisa que todo computador tem) para fazer as mais incríveis e inimagináveis proezas. Nutro paixão pela linguagem porque aprendi a programar com javascript, nos meus idos de 15 anos (época em que não tinha a menor idéia de como fazer um Borland C rodar, ou um Eclipse por exemplo).
Agora, que javascript não é perfeita ninguém discute. Não vou falar neste artigo no fato da linguagem não exigir declaração das variáveis, utilizar apenas o “var” para qualquer tipo primitivo, que não é segura, etc…
O que vou relatar é um bug assutador da linguagem:
Quanto é 1000.28 – 1000?
Pois é, para o javascript o resultado incrivelmente não é 28!
Ou 0.1 + 0.2?
Não espere um 3 exato!
Faça você mesmo o teste!
<script>
alert(1000.28 - 1000);
alert(0.1 + 0.2);
</script>
O que acontece é que os “números em Javascript são representados internamente com 64 bits e cada número pode ter no máximo 17 dígitos significativos”, palavras de Carlos Brando.
Para mais exempos e explicações, recomendo o blog do Carlos, acessando http://www.nomedojogo.com/2009/08/17/isto-e-um-bug-no-javascript/
Até a próxima!