如何将浮点数格式化为 java 中的 x 小数位数

How to format float number to x amount of decimals in java

我需要设置此浮点数的格式,以便标签显示 x 位数的小数。 ex.10.9832432 我希望它显示 10.9832432 的确切小数位数。

    try{
    DecimalFormat df = new DecimalFormat("#");
    float numOne = Float.parseFloat(numberOne.getText());
    float numTwo = Float.parseFloat(numberTwo.getText());
    float anser = numOne+numTwo;
    String AR = df.format(anser);
        answerLabel.setText(AR);
    }catch(NumberFormatException nfe){
        answerLabel.setText(null);
    }

那么....您应该告诉您的代码不要将其显示为整数的字符串表示形式,就像您使用 df 变量声明时所做的那样 十进制格式 class。

如果您希望您的标签显示实际提供的浮点数总和,那么甚至不必费心使用 DecimalFormat,除非您真的想显示实际的特定字符串格式。以下将执行所需的操作:

    float numOne = Float.parseFloat(numberOne.getText());
    float numTwo = Float.parseFloat(numberTwo.getText());
    float anser = numOne+numTwo;
    String AR = String.valueOf(anser);
    answerLabel.setText(AR);

但是如果您想要显示特定的字符串格式(比如说显示总和到小数点后 3 位的精度)那么一定要使用 DecimalFormat 但以这种方式:

try{
    DecimalFormat df = new DecimalFormat("#.###"); // provide the format you actually want.
    float numOne = Float.parseFloat(numberOne.getText());
    float numTwo = Float.parseFloat(numberTwo.getText());
    float anser = numOne+numTwo;
    String AR = df.format(anser);
    answerLabel.setText(AR);
}
catch(NumberFormatException nfe){
    answerLabel.setText(null);
}