[英]Newbie help - Java currency calculator
我是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");
}
}
更换
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");
}
将产品转换为double
值,即: int svar1 = (int)(dollar * valuta);
,但是你失去了分数部分。 更好的方法是将svar1
声明为double
: double svar1 = dollar * valuta
。 然后,当您打开消息对话框时,需要正确构造消息字符串。 因此,如果要将不同的因子连接成一个字符串,则需要使用+
运算符(并且必须确保这些因子中至少有一个实际上是一个字符串)。 所以你需要:
showMessageDialog(null, dollar + " * " + valuta + " = " + svar1 + "\\n");
但是如果你想要更多地控制格式,你应该考虑使用String
类的format
方法(从1.5开始; 参见javadoc for 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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.