1
resposta

(Dúvida) - Preenchimento no pop-up do prompt

Quando o usuário preenche a altura e utiliza virgula para separar as casas decimais (1,70), o java não aceita isso como um número (NAN). Para funcionar o usuário deve preencher o campo separando as decimais com um ponto (1.70) O usuário leigo normalmente utilizará uma virgula. Como fazer para driblar esta divergência?

1 resposta

Olá Sadão,

Tudo bem com você?

Para permitir que o usuário insira a altura utilizando uma vírgula como separador decimal, você pode usar uma função de validação para converter automaticamente a vírgula em um ponto antes de processar o valor da altura. Aqui está um exemplo de como fazer isso em Java:

public static double validarAltura(String altura) {
    double alturaConvertida = 0.0;
    try {
        alturaConvertida = Double.parseDouble(altura.replace(",", "."));
    } catch (NumberFormatException e) {
        // Caso ocorra algum erro na conversão, você pode tratar aqui
    }
    return alturaConvertida;
}

Nesse exemplo, a função validarAltura recebe uma string altura como parâmetro e tenta converter o valor para um número de ponto flutuante usando o método Double.parseDouble. Antes da conversão, a função substitui qualquer vírgula presente na string por um ponto usando o método replace(",", ".").

Dessa forma, se o usuário digitar "1,70" como altura, a função irá convertê-lo para "1.70" antes de convertê-lo em um número. Isso permite que o usuário utilize a vírgula como separador decimal sem que o Java gere um erro "NAN".

Você pode usar essa função em conjunto com outras validações para garantir que o valor inserido pelo usuário esteja correto antes de processá-lo. Por exemplo, você pode verificar se a altura está dentro de um determinado intervalo ou se está em um formato válido.

Espero ter ajudado.