java使用char格式化最多两个小数位的字符串

时间:2014-12-14 04:35:48

标签: java string format

所以我在格式化字符串时遇到了麻烦。

我的输出应始终为##.##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);
}

3 个答案:

答案 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)

您可以使用以下代码段获得所需的结果。

double p =10.1234;
char s = 'F';
String formatted = String.format("%.2f%S", p, s);
System.out.println(formatted);

您可以在oracle找到有关格式化的更多信息。请注意,还有其他替代方法可以实现输出,您可以找到有用的链接here