【发布时间】:2015-05-21 20:32:37
【问题描述】:
很抱歉打扰你们,我是编程新手,在使用这个程序时遇到了问题。
import javax.swing.*;
import java.text.*;
import java.util.*;
public class Project13{
public static void main(String [] args){
String heightStr;
String weightStr;
int height;
int weight;
int bmi;
DecimalFormat df = new DecimalFormat("0");
heightStr = JOptionPane.showInputDialog(null,"Enter height in centimetres:");
height = Integer.parseInt(heightStr);
weightStr = JOptionPane.showInputDialog(null,"Enter weight in kilograms:");
weight = Integer.parseInt(weightStr);
int bmi = weight/ ((height/ 100.0)* (height/ 100.0));
JOptionPane.showMessageDialog(null,"The BMI is "+ bmi +" .");
}
}
当我尝试编译它时,我收到以下错误消息:
Project3_3.java:24:错误:变量 bmi 已在方法 main(String[]) 中定义 int bmi = 体重/ ((身高/ 100.0)* (身高/ 100.0));
Project3_3.java:24:错误:不兼容的类型:从 double 到 int 的可能有损转换 int bmi = 体重/ ((身高/ 100.0)* (身高/ 100.0));
谁能发现问题?
另外,什么程序最适合编写 Java?我目前使用 Crimson Editor,但是每次使用时都需要进行大量设置。
谢谢!
*********编辑*************** 我从 BMI 中删除了 int,但有损转换错误仍然存在。有想法该怎么解决这个吗?
【问题讨论】:
-
首先,您不能在同一范围内多次声明标识符。第二次你将一个双精度值放入一个 int 变量中,有许多双精度值不能原封不动地转换为 int,编译器会警告你。
-
后期编辑:将 bmi 声明为“double”而不是“int”。
-
感谢所有帮助!固定。
标签: java compiler-errors