Java 如何将数字设置为double don';t在JFrame中显示为那样(24.9999)

Java 如何将数字设置为double don';t在JFrame中显示为那样(24.9999),java,floating-point,double,number-formatting,Java,Floating Point,Double,Number Formatting,我正在做一个程序来计算你的BMI(体重指数),一切都正常,但是出现的结果是不对的,因为出现了一个数字巨人,比如2499999,我希望它只出现24,99 我的代码是: height = Double.parseDouble(txtHeight.getText()); weight = Double.parseDouble(txtWeight.getText()); bmi = heig

我正在做一个程序来计算你的BMI(体重指数),一切都正常,但是出现的结果是不对的,因为出现了一个数字巨人,比如2499999,我希望它只出现24,99

我的代码是:

  height = Double.parseDouble(txtHeight.getText());
                    weight =     Double.parseDouble(txtWeight.getText());           
                    bmi = height/weight;
                    bmi = weight/3.24;              


                    if(bmi < 17) {
                        lblBMI.setText("Your BMI is : " +bmi  + "," + " very underweight");
                    }
height=Double.parseDouble(txthheight.getText());
weight=Double.parseDouble(txtwweight.getText());
bmi=身高/体重;
体重指数=体重/3.24;
如果(体重指数<17){
setText(“你的体重指数是:“+BMI+”,“+”非常轻”);
}
示例:如果我将身高设置为1,80,体重设置为45,那么结果中会显示你的BMI为138888888888。


PS:所有变量都是双精度的。

您可以像这样使用String.format()方法:
double d = 7.9352;
String s = String.format("%.2f",d);

它将输出7.93,因为%.2f中的2表示小数点后要包含的位数

或者,如果您所做的只是打印字符串,则可以使用System.out.printf()如下所示:


使用
NumberFormat
System.out.println(NumberFormat.getNumberInstance().format(bmi))
如果我看到这个问题,我永远不会问,如果你认为它是重复的,很抱歉,但我认为它不是。虽然我不想说这个方法有效(并且比我预期的效果更好),
NumberFormat
将允许你根据当前的本地值格式化,这可能是首选的。仍然是+1;)谢谢,伙计,它成功了,我很高兴,真的谢谢你。PS:代码非常简单,没有什么难懂的地方。
System.out.printf("%.2f",d);