2017-02-09 3 views
0

このプログラムの目的は、正しい変更を与えることです。例:元の値を保持しながら整数としてBigDecimalを表示

入力:$ 45.54

出力:4枚のテンドル紙幣、 1ファイブドル紙幣、 2クオーター、 4ペニー。私の質問への今

私はペニーのため0.01に到達するまでのすべての方法ダウン私の分裂を続けなければならないとして、元の値を失うことなく、整数としてのBigDecimalを表示したいです。

のように私の現在のコードになります。私の目標は4.554がために最後に小数点以下の桁を失うことなく4として表示させることである

Please enter the amount to be converted: 45.54 
Amount you entered: $45.54 
4.554 Ten Dollar Bills 
0 Five Dollar Bills 

表示終わる
BigDecimal tenDollar = BigDecimal.valueOf(10); 
    BigDecimal tenDollarNext; 
    BigDecimal fiveDollar = BigDecimal.valueOf(5); 
    BigDecimal fiveDollarNext; 

/* Get Input From User */ 

    System.out.print("Please enter the amount to be converted: "); 
    Scanner scan = new Scanner(System.in); 
    BigDecimal money = scan.nextBigDecimal(); 

    NumberFormat usdFormat = NumberFormat.getCurrencyInstance(Locale.US); 
    usdFormat.setMinimumFractionDigits(2); 
    usdFormat.setMaximumFractionDigits(2); 

    System.out.println("Amount you entered: " + usdFormat.format(money)); 

    /* Begin Processing and Displaying Information */ 

    tenDollarNext = money.divide(tenDollar); 
    System.out.println(tenDollarNext + " Ten Dollar Bills"); 

    fiveDollarNext = tenDollarNext.divide(fiveDollar, 0, RoundingMode.FLOOR); 
    System.out.println(fiveDollarNext + " Five Dollar Bills"); 

計算。私はこれに簡単な答えがあると確信しています、私は誰かが私にそれのための変換を教えるか、私が答えを見つけることができる方向に私を指すことができると思っていた。私の検索クエリは役に立ちませんでした。

答えて

2

の代わりにBigDecimalクラスのdivideToIntegralValueメソッドを使用します。これは、値が整数であるBigDecimalを返します。その後、適切な金額をmoneyから差し引くことができます。

+0

信じられないほどの反応!どうもありがとうございます! –

関連する問題