0

私は、疑似 xml 形式の電子納税フォームを処理する Java プログラムを作成しています。
結果として支払われる、または還付される税額は、次の形式になります: 13 文字の長さ 符号なし整数の文字列。最後の 2 つはセント (小数点以下 2 桁) を表します。結果がプラス(支払い)かマイナス(返金)かは別の場所で示されているので、ここでは関係ありません。

この文字列を BigNumber に変換する必要があり、以下の解決策にたどり着きました。これは良い方法ですか? より良い解決策を知っていますか?

public class BigDecimalTest {
    public static void main(String[] args) {

        // 0000000043272  for EUR 432.72
        String s = "0000000043272";    

        //mantissa is the amount as-is, exponent-2 since working with 2 decimal places.
        BigDecimal bd = new BigDecimal(s+"E-2"); 

        System.out.printf("%s: BigDecimal %sE-2 toString: %s\n", s, s, bd.toString());
    }
}
4

2 に答える 2

2

次のものも使用できます。

BigDecimal bd = new BigDecimal("1234").movePointLeft(2);

2番目のインスタンスを作成しますが、読みやすくなります。

于 2012-05-16T15:37:48.743 に答える
1

別の方法:

// making use of the constructor scale parameter
BigDecimal bd = new BigDecimal(new BigInteger(s), 2);  
于 2012-05-16T19:33:29.120 に答える