jerber
Alfa
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola, porque javascript con esto:
<script>
a=1.200+0.001;
alert(a);
</script>
Arroja esto:
1.2009999999999998
Como puedo solucionarlo?
Gracias
Foi útil? Participe da conversa
Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.
Leva 30 segundos · você volta a este tópico ao terminar
Cicklow
Admin
Dseda
Verificado
Verificación en dos pasos activada
Usuário popular!
Suscripción a IA
usa toFixed(3)... 3 son la cantidad de decimales...
coyoteazul
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Los sistemas binarios que utilizan las computadoras no pueden representar decimales con total exactitud. Hay numeros que son imposibles de representar porque tienen un numero ilimitado de decimales y la computadora no puede usar una cantidad ilimitada de memoria.
Al usar alert sobre el numero decimal le estas pidiendo a la computadora que "muestre" el numero tal y como ella lo conoce. Usando modificadores como el sugerido por cicklow la computadora ya no ve un numero, sino un string. Por eso puede mostrar un "numero" que si realmente fuera un numero no podria ni considerar
Ese es el porque. La solucion ya la tienes
Getsuga
Gamma
Programador
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Cuando trabajes con numeros en Javascript debes tener un poco de cuidado, ese resultado que te dio digamos que es un
problema que tiene el sistema actual para representar este tipo de numeros.
por ejemplo:
Si comparas 1.200+0.001 === 1.201 segun ese resultado seria False.
Puedes usar toPrecision(1) es muy similar a toFixed() la diferencia es que aqui especificas la cifra significativa del numero. 😛7: