2016-03-06 73 views
0

目前,我正在练习我的JavaFX技能。大多数情况下,我试图自己解决问题,但这一次它不在我的脑海里。JavaFX标签双精度

我决定创建一个单位转换器。一切正常,直到我想进去标签矿代码工作好我的计算,但我不乐意看到10个或更多小数时喜欢155.54等

这里我输入号码是代码:

value = input.getText().toString(); 
dValue = Double.parseDouble(value); 

    public void temperatureHandler() { 
    if (cBox.getValue() == "Celsius (C)") { 
     celsiusOutput.setText(Double.toString(dValue)); 
     fahrenheitOutput.setText(Double.toString((dValue * 1.8) + 32)); 
     kelvinOutput.setText(Double.toString(dValue + 273.15)); 
    } 
    else if (cBox.getValue() == "Fahrenheit (F)") { 
     celsiusOutput.setText(Double.toString((dValue - 32)/1.8)); 
     fahrenheitOutput.setText(Double.toString(dValue)); 
     kelvinOutput.setText(Double.toString((dValue + 459.67) * 5/9)); 
    } 
    else if (cBox.getValue() == "Kelvin (K)") { 
     celsiusOutput.setText(Double.toString(dValue - 273.15)); 
     fahrenheitOutput.setText(Double.toString((dValue * 1.8) - 459.67)); 
     kelvinOutput.setText(Double.toString(dValue)); 
    } 
} 

我有使用字符串格式,StringBuilders等一些经验。但我不知道如何设置标签内的精度。我想将它设置为2位小数。

非常感谢您。

回答

1

使用十进制格式来格式化/截断你的双2位小数..

DecimalFormat df = new DecimalFormat("#.00"); 
df.format(myDouble); 

你的情况

DecimalFormat df = new DecimalFormat("#.00"); 
celsiusOutput.setText(df.format((dValue - 32)/1.8)); 
+0

谢谢您的anwser。我应用了这些更改,但不起作用。我尝试了许多不同的方式,但它大部分都是这样结束的:“Double类型的方法toString(Double)不适用于参数(String)”。任何想法,我怎么能摆脱它。我很抱歉,如果我要求明显的事情,但我不是最明亮的编程之星:( – Haseoh

+0

是的...删除Double.tooString ...你不需要它anymopre \ –

+0

我更新了答案和测试它,现在它工作!!! –