DecimalFormatを使用して、常に6文字の長さのフォーマットされた小数を作成しています。最初はのフォーマット文字列を使用しましたnew DecimalFormat("000.00")が、これにより負の数のバグが発生しました。マイナス記号が追加され、ナンバーワンのスペースが大きくなり、結果として希望どおり-005.25ではなく-05.25なります。
私は次のコードでこれを修正することができました
DecimalFormat fmt;
if(netAmt < 0){
fmt = new DecimalFormat("00.00");
}else{
fmt = new DecimalFormat("000.00");
}
System.out.println(fmt.format(netAmt));
ただし、DecimalFormatには、;正の数とは異なる方法で負の数をフォーマットする特性があります。私はこの仕事を正しくすることができませんでした。私が理解しているように、次のコードは上記のように機能するはずです。
DecimalFormat fmt = new DecimalFormat("000.00;00.00");
System.out.println(fmt.format(netAmt));
その結果、前のパターンが;負の数と正の数の両方に使用され、-005.25エラーが残ります。私は何が間違っているのですか?私は何;のためにあるのか誤解していますか?