2014-11-24 122 views
-2

我正在尝试制作一个程序,您可以输入英镑的金额并转换为美元,反之亦然。为什么我的代码错了?你能否解决它并告诉我为什么你做了你所做的事情。货币转换程序

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

} 
+3

什么部分是“不工作”? – kolossus 2014-11-24 20:38:57

+0

你的程序在运行吗?你得到什么输出? – Vikram 2014-11-24 20:40:36

+0

你好,欢迎堆栈溢出。这里我们使用标签来描述技术问题是关于的,所以既然你已经用'java'标记了这个问题,就没有必要在标题中重复这些信息。 – Pshemo 2014-11-24 20:41:24

回答

1

没有必要切换到控制台 - 您可以继续使用您的扫描仪。这里是可用的版本:

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

而且,你的代码甚至不应该编译,因为你正试图通过一个float乘以一个String。您可以拨打Float.parseFloat(..)String转换为float

+0

你应该提到一个尝试将'float'与'String'相乘的OP。我会删除我的答案。 – 2014-11-24 20:50:06

+0

我刚添加它。谢谢。 – 2014-11-24 20:53:15