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试图将
浮点
乘以
字符串
。我将删除我的答案。我刚刚添加了它。谢谢