String.Format()的结果被忽略,但为什么呢?

时间:2017-10-16 10:18:42

标签: java android-studio

所以我想把我的双值换成只包含2位小数的数字,但是无法弄清楚如何做到这一点。如何更改我的代码以获得2个舍入为2位小数的值?任何帮助都将不胜感激。

btnAdd.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
        num1 = Double.parseDouble(numBase.getText().toString());
        num2 = Double.parseDouble(numNikotin.getText().toString());
        sum = num1 / 20 * num2;
        String resultN = Double.toString(sum);
        String.format("%.2f", resultN);
        addResult.setText(resultN);
        sum = num1 - sum;
        String resultB = Double.toString(sum);
        String.format("%.2f", resultB);
        addResult2.setText(resultB);
    }
});

3 个答案:

答案 0 :(得分:4)

String.format(...);返回一个新的String。您必须将其分配给变量:

resultN= String.format("%.2f", sum );

参数也必须是数字。

有关详细信息,请参阅javadoc

答案 1 :(得分:0)

请查看以下帖子: round up to 2 decimal places in java?

double roundOff = Math.round(a * 100.0) / 100.0;

String roundOffTo2DecPlaces(float val)
{
    return String.format("%.2f", val);
}

答案 2 :(得分:0)

使用此

String resultN = String.format("%.2f", sum);

为什么要施放到字符串?????????

String resultN = Double.toString(sum);
String.format("%.2f", resultN);