Estou precisando pegar um objeto String e usá-lo em uma condição que tem que ser menor que 2.4, usei então um parseFloat mas o resultado é arredondado para 2. Alguém tem uma dica para usar o valor real que preciso (2.4)?
PS: Isso tem que ser em JavaScript.
Dúvida de JavaScript
6 Respostas
Engraçado, experimente o código a seguir. Funciona a conversão.
alert(parseFloat("2.4") + parseFloat("3.71"));
Qual a diferença entre parseFloat(“2.4”) e parseFloat(“2,4”)?
No meu Windows em inglês, o primeiro retorna 2.4 como esperado, e o segundo retorna 2.
Pode ser que esteja acontecendo o contrário na sua máquina, mas como estou sem o Windows em português, não tenho como dizer o que acontece no segundo parseFloat.
Você pode até usar uma condição (do tipo "if (parseFloat(“2.4”) == 2) … )para testar isso, e trocar as vírgulas por pontos ou os pontos por vírgulas para fazer a conversão.
Não importa o idioma do SO, pontos flutuantes em JavaScript sempre irá utilizar o “.” como separador fracionário.
javascript é um melecão… odeio esse lixo
É um lixo mesmo! O problema eu já resolvi, era a porr* da máscara que o campo usava. Pra ser 2.4 a entrada tinha que ser 24000 porque aí ele ficava 2.40,00. Valeu galera!!
Eu curto bastante programar com Javacript, por mais que as vezes é meio chato compatibilizar o código para que funcione em navegadores diferentes e com versões diferentes.