0

我对java完全陌生,我的第一个任务是制作一个从美元到挪威克朗(挪威克朗)的货币计算器。并且该程序应该计算并显示如何最有效地在所有挪威支付单位中兑现这笔金额。我一直在尝试一整天,但一无所获。谁能帮我解决我的代码?

这是我的代码:

/*
 * 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中的小数点是'.' 不是 ','。

可能您还想将类型更改svar1double

也改变:

    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);,但你会失去小数部分。更好的方法是声明svar1double: double svar1 = dollar * valuta。然后,当您打开消息对话框时,您需要正确构造消息字符串。因此,如果您想将不同的因素连接到一个字符串中,您需要使用+运算符(并且您必须确保这些因素中至少有一个实际上是一个字符串)。所以你需要:

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

但是如果你想对格式有更多的控制,你应该考虑使用类format的方法String(从 1.5 开始;参见 javadoc 中的 String.format 解释)。最终你可以使用这个:

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 回答