Li no javaprogressivo.net/2012/08/java-recebendo-dados-do-usuario-classe.html que o certo em campo float é usar . (ponto) e não , (virgula). Até ai tudo bem, é da mesma forma que trabalho em SQL.
No exercicio sobre IMC em javaprogressivo.net/2012/08/java-operacoes-matematicas-adicao.html , fiz o seguinte código:
package javaapplication1;
import java.util.Scanner;
public class JavaApplication1 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float peso;
float altura;
//Pergunta peso
System.out.println("Digite seu peso: ");
peso = entrada.nextFloat();
//Pergunta altura
System.out.println("Digite sua altura: ");
altura = entrada.nextFloat();
System.out.printf("%.2f / %.2f - %.2f\n",peso, altura, peso / Math.pow(altura,2));
}
}
Quando executo a aplicação e sou solicitado a informa o peso e altura se uso . (ponto) recebo o seguinte erro:
Digite seu peso:
88.0
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextFloat(Scanner.java:2388)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:14)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)
Se uso virgula funciona corretamente, inclusive o calculo, veja a saida:
Digite seu peso:
88,0
Digite sua altura:
1,68
88,00 / 1,68 - 31,18
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)
Será pelo fato de o Java estar em portugues e o netbeans tambem ele já interpreta que é , o padrão regional?
Obrigado
Ricardo
No exercicio sobre IMC em javaprogressivo.net/2012/08/java-operacoes-matematicas-adicao.html , fiz o seguinte código:
package javaapplication1;
import java.util.Scanner;
public class JavaApplication1 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float peso;
float altura;
//Pergunta peso
System.out.println("Digite seu peso: ");
peso = entrada.nextFloat();
//Pergunta altura
System.out.println("Digite sua altura: ");
altura = entrada.nextFloat();
System.out.printf("%.2f / %.2f - %.2f\n",peso, altura, peso / Math.pow(altura,2));
}
}
Quando executo a aplicação e sou solicitado a informa o peso e altura se uso . (ponto) recebo o seguinte erro:
Digite seu peso:
88.0
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextFloat(Scanner.java:2388)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:14)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)
Se uso virgula funciona corretamente, inclusive o calculo, veja a saida:
Digite seu peso:
88,0
Digite sua altura:
1,68
88,00 / 1,68 - 31,18
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)
Será pelo fato de o Java estar em portugues e o netbeans tambem ele já interpreta que é , o padrão regional?
Obrigado
Ricardo