如何在 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)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Dart/Flutter 中将数字从 20,95 转换为 20.95?
如何在初始化中将 'std::vector<double>' 转换为 'double'