如何在 JFrame 中将数字设为 double 类型不会像那样出现(24.9999)

Posted

技术标签:

【中文标题】如何在 JFrame 中将数字设为 double 类型不会像那样出现(24.9999)【英文标题】:How to make numbers as type double don't appears like that(24.9999) in JFrame [duplicate] 【发布时间】:2015-09-29 03:39:09 【问题描述】:

我正在做一个计算你的 BMI(体重指数)的程序,一切正常,但出现的结果,这是不对的,因为出现了一个数字巨人,比如 24,99999,我希望它只出现类似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");
                    

示例:如果我将身高设为 1,80,体重设为 45,结果中将显示您的 BMI 为 13,88888888888888888。

PS : 所有的变量都是 Double。

【问题讨论】:

使用NumberFormat, System.out.println(NumberFormat.getNumberInstance().format(bmi)); 如果我看到了这个问题,我永远不会问,对不起,如果你认为它是重复的,但我认为它不是。 【参考方案1】:

您可以像这样使用 String.format() 方法:

double d = 7.9352;
String s = String.format("%.2f",d);

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

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

System.out.printf("%.2f",d);

【讨论】:

虽然我不会争辩说它有效(并且效果比我预期的要好),但NumberFormat 将允许您根据当前可能首选的本地来格式化值。还是 +1 ;) 谢谢大佬,成功了,我很高兴,真的谢谢。 PS:而且代码非常简单,没什么难理解的。

以上是关于如何在 JFrame 中将数字设为 double 类型不会像那样出现(24.9999)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中将多个可拖动图像添加到 JFrame?

如何在 Dart/Flutter 中将数字从 20,95 转换为 20.95?

在 JFrame 中将图像绘制到 JPanel

如何在初始化中将 'std::vector<double>' 转换为 'double'

如何在 Scala 中将 Array[(Double, Double)] 转换为 Array[Double]?

Excel中将数据格式设为数值型怎么设