/**
* @param args
*/
public static void main(String[] args) {
float peso;
float altura;
String valorPeso = JOptionPane.showInputDialog("Qual o seu Peso?");
String valorAltura = JOptionPane.showInputDialog("Qual a sua Altura?");
valorPeso.replace("," , ".");
valorAltura.replace(",",".");
peso = Float.parseFloat(valorPeso);
altura = Float.parseFloat(valorAltura);
System.out.println("Seu imc é: " + peso/Math.pow(altura, 2));
}
}
[/code]
Error:
Exception in thread “main” java.lang.NumberFormatException: For input string: “84,5”
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at imc.imc.main(imc.java:22)
package imc;
import javax.swing.JOptionPane;
public class imc {
/**
* @param args
*/
public static void main(String[] args) {
// se vai fazer contas, não use float - use sempre double, long ou BigDecimal.
// Reserve float apenas para algumas APIs (como algumas de Java2D que requerem float)
double peso;
double altura;
String valorPeso = JOptionPane.showInputDialog("Qual o seu Peso?");
String valorAltura = JOptionPane.showInputDialog("Qual a sua Altura?");
// Note que strings são imutáveis, portanto você tem de substituí-las da seguinte forma:
valorPeso = valorPeso.replace("," , ".");
valorAltura = valorAltura.replace(",",".");
peso = Double.parseDouble(valorPeso);
altura = Double.parseDouble(valorAltura);
System.out.printf("Seu imc é: %.2f\n", peso/Math.pow(altura, 2));
}
}
Strings são objetos imutaveis, isso significa que quando voce da um .replace() ela n muda a string, apenas cria uma referencia a uma nova string, entao pra funcionar vc teria que fazer o seguinte: