当我在格式方法中输入% 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();
}
};
答案 0 :(得分: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
因此请使用以下
String.format("%.02f", tipAmount)