新手帮助 - Java货币计算器

时间:2013-01-30 20:33:07

标签: java

我是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");
    }
}

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

将产品转换为double值,即:int svar1 = (int)(dollar * valuta);,但随后您将失去分数部分。更好的方法是将svar1声明为doubledouble svar1 = dollar * valuta。然后,当您打开消息对话框时,需要正确构造消息字符串。因此,如果要将不同的因子连接成一个字符串,则需要使用+运算符(并且必须确保这些因子中至少有一个实际上是字符串)。所以你需要:

  

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

但是,如果您想要更多地控制格式,则应考虑使用format类的String方法(自1.5; see javadoc for String.format explanation)。最终你可以使用它:

  

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;
}