Java 货币兑换程序
我正在尝试做一个程序,你可以输入一个英镑的金额,然后转换成美元,反之亦然。为什么我的代码错了?你能修好它并告诉我你为什么这么做吗Java 货币兑换程序,java,currency,Java,Currency,我正在尝试做一个程序,你可以输入一个英镑的金额,然后转换成美元,反之亦然。为什么我的代码错了?你能修好它并告诉我你为什么这么做吗 package currencyConverter; import java.io.Console; import java.util.Scanner; public class ECurrencyConverter { public static void main(String[] args){ currency(); }
package currencyConverter;
import java.io.Console;
import java.util.Scanner;
public class ECurrencyConverter {
public static void main(String[] args){
currency();
}
public static void currency(){
int choice;
Scanner keyboard = new Scanner(System.in);
System.out.println("What would you like to convert?");
System.out.println("1. GBP to USD?");
System.out.println("2. USD to GBP?");
choice = keyboard.nextInt();
if(choice == 1){
float XUSD = (float) 1.64;
Console console = System.console();
String input1 = console.readLine("Enter GBP to be converted to USD:");
float amount1 = input1 * XUSD;
}else if (choice == 2){
float XGBP = (float) 0.64;
Console console = System.console();
String input2 = console.readline("Enter USD to be converted to GBP:");
float amount2 = input2 * XGBP;
}else if (choice > 2 || choice < 1){
System.out.println("Please pick either option 1 or 2.");
}
}
}
package-currency转换器;
导入java.io.Console;
导入java.util.Scanner;
公共类电子电流转换器{
公共静态void main(字符串[]args){
货币();
}
公共静态无效货币(){
智力选择;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您想要转换什么?”);
System.out.println(“1.GBP兑美元?”);
System.out.println(“2美元兑英镑?”);
choice=keyboard.nextInt();
如果(选项==1){
浮动XUSD=(浮动)1.64;
Console=System.Console();
字符串input1=console.readLine(“输入要转换为美元的英镑:”);
float amount1=input1*XUSD;
}else if(选项==2){
浮动XGBP=(浮动)0.64;
Console=System.Console();
字符串input2=console.readline(“输入要转换为英镑的美元:”);
浮点数2=输入2*XGBP;
}否则如果(选项>2 | |选项<1){
System.out.println(“请选择选项1或2”);
}
}
}
无需切换到控制台-您可以继续使用扫描仪。以下是一个有效的版本:
public static void main(String[] args) {
currency();
}
public static void currency(){
int choice;
Scanner keyboard = new Scanner(System.in);
System.out.println("What would you like to convert?");
System.out.println("1. GBP to USD?");
System.out.println("2. USD to GBP?");
choice = keyboard.nextInt();
if(choice == 1){
float XUSD = (float) 1.64;
System.out.println("Enter GBP to be converted to USD:");
System.out.println("USD: " + keyboard.nextFloat() * XUSD);
} else if (choice == 2){
float XGBP = (float) 0.64;
System.out.println("Enter USD to be converted to GBP:");
System.out.println("GBP: " + keyboard.nextFloat() * XGBP);
} else if (choice > 2 || choice < 1){
System.out.println("Please pick either option 1 or 2.");
}
}
publicstaticvoidmain(字符串[]args){
货币();
}
公共静态无效货币(){
智力选择;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您想要转换什么?”);
System.out.println(“1.GBP兑美元?”);
System.out.println(“2美元兑英镑?”);
choice=keyboard.nextInt();
如果(选项==1){
浮动XUSD=(浮动)1.64;
System.out.println(“输入要转换为美元的英镑:”);
System.out.println(“USD:+keyboard.nextFloat()*XUSD”);
}else if(选项==2){
浮动XGBP=(浮动)0.64;
System.out.println(“输入要转换为英镑的美元:”);
System.out.println(“GBP:+keyboard.nextFloat()*XGBP);
}否则如果(选项>2 | |选项<1){
System.out.println(“请选择选项1或2”);
}
}
此外,您的代码甚至不应该编译,因为您试图将
字符串
乘以浮点
。您可以调用Float.parseFloat(..)
将字符串
转换为Float它的哪个部分“不工作”?您的程序正在运行吗?您得到了什么输出?您好,欢迎收看堆栈溢出。这里我们使用标签来描述技术问题,所以既然您已经用java
标记了这个问题,就不需要在标题中重复这个信息。作为附带建议,不要使用float
或double
进行货币计算(或它们各自的包装类)。两者都不精确。您可以缩放它并使用int
或long
,也可以使用Java的BigDecimal
。我知道这一点。我在一所大学教计算机科学。但是,如果你要学习,我说要学习所有的事实。此外,我的评论显然是旁注。你应该提到OP试图将浮点
乘以字符串
。我将删除我的答案。我刚刚添加了它。谢谢