0

Java はまったく初めてで、最初のタスクは、米ドルから NOK (Norsk Kroner) への通貨計算機を作成することです。そして、プログラムは、この金額をすべてのノルウェーの支払い単位で最も効果的にキャッシュアウトする方法を計算して表示する必要があります。私は一日中努力してきましたが、どこにも行きません。私のコードを手伝ってくれる人はいますか?

私のコードは次のとおりです。

/*
 * Valutacalc
 *
 */

import static java.lang.System.*;
import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*;

public class Kalkulator {
    public static void main(String[] args) {
        // Leser verdi fra brukeren
        String tallTxt = showInputDialog("Antall US Dollar");
        int dollar = parseInt(tallTxt);
        double valuta = 5,49;
        // Beregner svarene av regnearbeidet /
        int svar1 = dollar * valuta;
        //Skriv ut resultat
        showMessageDialog(null,   dollar  * " * " valuta " = " + svar1 + "\n");
    }
}
4

2 に答える 2

2

交換

double valuta = 5,49;

double valuta = 5.49;

Java の小数点は「.」であるためです。いいえ '、'。

のタイプを に変更することもできsvar1ますdouble

また変更:

    showMessageDialog(null,   dollar  * " * " valuta " = " + svar1 + "\n");

    showMessageDialog(null,   dollar  + " * " + valuta + " = " + svar1 + "\n");


穴コード:

public static void main(String[] args) {
    // Leser verdi fra brukeren
    String tallTxt = showInputDialog("Antall US Dollar");
    int dollar = parseInt(tallTxt);
    double valuta = 5.49;
    // Beregner svarene av regnearbeidet /
    double svar1 = dollar * valuta;   
    //Skriv ut resultat
    showMessageDialog(null,   dollar  + " * " + valuta + " = " + svar1 + "\n");
}
于 2013-01-30T20:34:54.360 に答える
0

積を値にキャストしdoubleます。つまり:int svar1 = (int)(dollar * valuta);ですが、小数部が失われます。より良いアプローチは、 :svar1として宣言することです。次に、メッセージ ダイアログを開くときに、メッセージ文字列を適切に作成する必要があります。したがって、さまざまな要素を 1 つの文字列に連結する場合は、演算子を使用する必要があります (また、それらの要素の少なくとも 1 つが実際に文字列であることを確認する必要があります)。したがって、次のものが必要です。doubledouble svar1 = dollar * valuta+

showMessageDialog(null, dollar + " * " + valuta + " = " + svar1 + "\n");

ただし、フォーマットをより細かく制御したい場合は、クラスformatのメソッドの使用を検討する必要があります (1.5 以降。String.format の説明については javadoc を参照してください)。最終的にこれを使用できます:String

showMessageDialog(null, String.format("%0.2f * %0.2f = %0.2f\n", dollar, valuta, svar1));


さて、あなたは実際に今何か他のものを求めています. わかりました、これを見てください(使用例付き):

private static final int[] PAYMENT_UNITS = {
    1000, 500, 200, 100, 50, 20, 10, 5, 1
};

public static void main(final String[] args) {
    printCashOut(split(2004307));
}

private static final void printCashOut(final int[] cacheOut) {
    int total = 0;
    for (int i = 0; i < PAYMENT_UNITS.length; i++) {
        final int p = cacheOut[i] * PAYMENT_UNITS[i];
        System.out.printf("%4d x %4d = %8d\n",
                cacheOut[i],
                PAYMENT_UNITS[i],
                p
            );
        total += p;
    }
    System.out.printf("       TOTAL: %8d\n", total);
}

private static final int[] split(final int amount) {
    if (amount < 0) {
        return null;
    }
    final int[] cashOut = new int[PAYMENT_UNITS.length];
    int rest = amount;
    for (int i = 0; i < PAYMENT_UNITS.length; i++) {
        cashOut[i] = rest / PAYMENT_UNITS[i];
        rest -= cashOut[i] * PAYMENT_UNITS[i];
    }
    return cashOut;
}
于 2013-01-30T21:02:53.807 に答える