1

当我在格式方法中输入 % 0 .02f 作为参数时,我的小费计算器应用程序上的 SeekBar 崩溃。

tipAmountEditText.setText(String.format("%0.02f", tipAmount));

我通过删除整数部分解决了这个问题,因此变成了%.02f. 关于这个问题,我能说的唯一特点是它使用 ChangeListener 弹出。我不明白为什么这会是一个问题,我希望有人能启发我。如果您需要查看更大的图景,我的全部代码都在我的 github 上:https ://github.com/xamroc/TipCalc

private OnSeekBarChangeListener tipSeekBarListener = new OnSeekBarChangeListener() {

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {

        tipAmount = (tipSeekBar.getProgress()) * .01;

        tipAmountEditText.setText(String.format("%.02f", tipAmount));

        updateTipAndFinalBill();

    }

};
4

1 回答 1

3

在这里String.format("%0.02f", tipAmount) 你得到

java.util.MissingFormatWidthException

//This Unchecked exception thrown when the format width is required.

文档

原因:

%0.02f interprets as a floating point at least 0 wide.

Thats why it gives MissingFormatWidthException // as its assuming width to 0

所以改用Following

String.format("%.02f", tipAmount)
于 2013-09-17T13:36:57.973 回答