我是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");
}
}
答案 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
声明为double
:double 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;
}