所以我在格式化字符串时遇到了麻烦。
我的输出应始终为##.##C or F
(温度转换)
所以这是我的方法:
public void setResultLabel(double inNumber, char inChar)
{
String number, letter;
number = String.valueOf(inNumber);
letter = String.valueOf(inChar);
String temp;
temp = number + letter;
String format = String.format("%2.5s", temp); /* how do you make this code
so that the out put result will always be up to two decimal places
with a char C or F? */
result.setText(format);
add(result);
}
答案 0 :(得分:1)
public void setResultLabel(double inNumber, char inChar)
{
String number, letter;
DecimalFormat decimalFormat = new DecimalFormat("##.##"+inChar);
String formated = decimalFormat.format(inNumber);
/* formated is your result */
// System.out.println(formated);
result.setText(format);
add(result);
}
答案 1 :(得分:0)
使用DecimalFormat
格式化十进制数字。要改变"的十进制标记,"到了"。" (如果需要),请使用DecimalFormatSymbols
public void setResultLabel(double inNumber, char inChar) {
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
DecimalFormat df = new DecimalFormat("##.##");
df.setDecimalFormatSymbols(dfs);
result.setText(df.format(inNumber) + inChar);
add(result);
}
请注意,通常DecimalFormat
会成为您班级中的一个字段,因为您每次拨打{{{}时都不想创建新的DecimalFormat
和新的DecimalFormatSymbols
1}}方法。
答案 2 :(得分:0)