Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试构建货币转换器,不确定下一步_Java - Fatal编程技术网

Java 正在尝试构建货币转换器,不确定下一步

Java 正在尝试构建货币转换器,不确定下一步,java,Java,我正在做一个课堂专题,似乎不知道下一步该做什么。说明如下: •它包含一个名为getFxRate的公共方法,该方法返回一个double,表示作为第一个和第二个字符串参数传入的货币代码之间的汇率。第一个字符串是源货币或“输入”货币,而第二个字符串是目标货币或“输出”货币 我知道我应该使用这个空间来找出如何从数组中调用一个速率,但我不确定如何做 该类将链接到一个html页面,用户将在该页面中选择两种货币,然后键入金额,因此让该类阅读他们选择的选项是另一回事 public class fxDataMod

我正在做一个课堂专题,似乎不知道下一步该做什么。说明如下:

•它包含一个名为getFxRate的公共方法,该方法返回一个double,表示作为第一个和第二个字符串参数传入的货币代码之间的汇率。第一个字符串是源货币或“输入”货币,而第二个字符串是目标货币或“输出”货币

我知道我应该使用这个空间来找出如何从数组中调用一个速率,但我不确定如何做

该类将链接到一个html页面,用户将在该页面中选择两种货币,然后键入金额,因此让该类阅读他们选择的选项是另一回事

public class fxDataModel {

/* create array for currency codes */
private static final String[] codes = {"CAD", "EUR", "GBP", "USD"};

/* create and populate 2d array for conversion */
private static final double[][] rates = 
{ {1.0, 0.624514066, 0.588714763, 0.810307 },
  {1.601244959, 1.0, 0.942676548, 1.2975},
  {1.698615463, 1.060809248, 1.0, 1.3764},
  {1.234100162, 0.772200772, 0.726532984, 1.0} };

public String[] getFxCurrencies(){
    return codes;
}

public double getFxRate (final int inCode, final int outCode){
int inCurr, outCurr;
    double rate;

    for (inCurr = 0; inCurr < 4; inCurr++){
        String inCurrency = codes[inCurr];
        if (inCode.equals(inCurrency)) {
            break;
        }
    }

    for (outCurr = 0; outCurr < 4; outCurr++){
        String outCurrency = codes[outCurr];
        if (outCode.equals(outCurrency)) {
            break;
        }
    }

    rate = rates[inCurr][outCurr];
    return rate;

}



}
公共类fxDataModel{
/*为货币代码创建数组*/
私有静态最终字符串[]代码={“CAD”、“EUR”、“GBP”、“USD”};
/*创建并填充二维阵列以进行转换*/
私人静态最终双[][]费率=
{ {1.0, 0.624514066, 0.588714763, 0.810307 },
{1.601244959, 1.0, 0.942676548, 1.2975},
{1.698615463, 1.060809248, 1.0, 1.3764},
{1.234100162, 0.772200772, 0.726532984, 1.0} };
公共字符串[]GetFXCurrences(){
返回码;
}
公共双getFxRate(最终整数输入代码、最终整数输出代码){
内生,外生;
双倍费率;
对于(incrr=0;incrr<4;incrr++){
字符串插入=代码[插入];
if(收入代码等于(发生额)){
打破
}
}
对于(outCurr=0;outCurr<4;outCurr++){
字符串outCurrency=代码[outCurr];
if(输出代码等于(输出货币)){
打破
}
}
利率=利率[发生][发生];
回报率;
}
}
编辑:这是我的教授给我们的提示

getFxRate的原型是 public double getFxRate(字符串发生、字符串输出货币)
因此,考虑到发生率(例如“USD”)和输出货币(例如“CAD”),getFxRate方法在数组F/X rates中查找,并返回将USD转换为CAD的值。现在,F/X速率的数组是double[][],这是一个二维数组。在我的假设示例中,[3][0]处的值回答了汇率数组中的哪个汇率转换为美元->加元的问题。这是因为在字符串[]的货币数组中,CAD位于第0位,USD位于第3位。因此,给定increance和outCurrency,在货币的String[]数组中找到这些索引,并在rates数组中使用这些索引返回单个值。Java非常简单,可以通过字符串数组循环查找匹配的货币及其关联的索引。这是Javai的东西,我把它留给你们,但一定要思考循环。

货币汇率是成对给出的。例如,CADEUR汇率为您提供购买1加元(加拿大元)所需的欧元(欧元)数量

让我们考虑截断<代码>率表:

     CAD   USD
CAD    1   0.81 
USD   1.23    1
因此,如果用户选择CAD和CAD作为两个输入,则返回1。如果用户选择CAD和USD,则返回0.81

我认为问题在于获取两个货币代码,并在
rates
表中找到正确的行号和列号,然后返回适当的汇率


编辑:我将遍历货币数组,找到给定的两个货币代码的索引。我将使用这两个索引来查找汇率应该是多少。

您有
String[]code
但您正在传递
int inCode,int outCode
?这很奇怪。哦,是的,那应该是一个字符串,我忘了换了。老师给了我们一个提示,让我试着把它放在字符限制内好吧,如果我理解正确,我需要采取以下步骤:1)使用GetFXCurrences找出用户选择的国家2)一旦找到,调用数组并运行循环,以便正确匹配两个是。GetFXCurrences返回的数组中货币的索引应该让您知道应该返回的汇率值。如果您看看我的CADUSD示例,第一列(费率表中的索引0)给出了所有CADXXX费率。第二列(汇率表中的索引1)给出了所有USDXXX汇率。我是否需要向GetFXCurrences添加任何内容,或者这样可以吗?不需要,您不需要修改
GetFXCurrences
方法返回的
code
数组。不管怎样,它被宣布为
final
。看,那就是我迷路的地方。我知道我应该做什么,但我只是不知道如何编码。我想做的是从
inCode
(在您的例子中,数组中的CAD=0)中获取数字的值,然后将该数字植入
rates
数组中。