Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables_Calculator - Fatal编程技术网

Java 不确定是否使用两个变量执行计算

Java 不确定是否使用两个变量执行计算,java,variables,calculator,Java,Variables,Calculator,这就是我到目前为止所得到的。在最后计算交换值后,我希望它根据用户是否是帐户持有人收取佣金(开始时询问)。比如,如果他们不是账户持有人,那么他们将获得2%的佣金,如果他们是,则获得1%的佣金。我不确定如何使用AccHolder变量和EXCAMBOUNT将其合并到佣金计算中。有什么帮助吗 if (CurChoice.equals("EUR")) { result = ExcAmount / Euro; DecimalFormat df = new De

这就是我到目前为止所得到的。在最后计算交换值后,我希望它根据用户是否是帐户持有人收取佣金(开始时询问)。比如,如果他们不是账户持有人,那么他们将获得2%的佣金,如果他们是,则获得1%的佣金。我不确定如何使用AccHolder变量和EXCAMBOUNT将其合并到佣金计算中。有什么帮助吗

if (CurChoice.equals("EUR")) {
            result = ExcAmount / Euro;
            DecimalFormat df = new DecimalFormat("#.##");
            System.out.println(ExcAmount + " in " + CurChoice + "\t=£" + df.format(result));
        } else if (CurChoice.equals("USD")) {
            result = ExcAmount / USAD;
            DecimalFormat df = new DecimalFormat("#.##");
            System.out.println(ExcAmount + " in " + CurChoice + "\t=£" + df.format(result));
        } else if (CurChoice.equals("JPY")) {
            result = ExcAmount / JapYen;
            DecimalFormat df = new DecimalFormat("#.##");
            System.out.println(ExcAmount + " in " + CurChoice + "\t=£" + df.format(result));
        } else if (CurChoice.equals("PLN")) {
            result = ExcAmount / Zloty;
            DecimalFormat df = new DecimalFormat("#.##");
            System.out.println(ExcAmount + " in " + CurChoice + "\t=£" + df.format(result));
        } else {
            System.out.println("");
        }

        double commission = (yn ? 0.01 : 0.02)*result;
        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println("Commission\t=£" + df.format(commission));

        double netPayment = result - commission;
        System.out.println("Total:\t=£" +netPayment);
年底

if (MenuChoice == 1) {
您应该设置以下一组条件:

if (yn) ExcAmount += 0.01 * ExcAmount;
else ExcAmount += 0.02 * ExcAmount;
这是您要查找的条件。

一次声明结果

double result = 0.0;
if (CurChoice.equals("EUR")) {
    result = ExcAmount / Euro;
//...
 } else {
    System.out.println("");
}

double commission = (yn ? 0.01 : 0.02)*result;
System.out.println( "commision: " + ... );
double netPayment = result - commission;
yn
是一个可怕的名字,iAccountHolder可能更好


此外,打开CurChoice比使用if更可取。

其中定义yn如下:

boolean yn;
将其初始化为true(如下所示),因为不允许用户输入y/n以外的字符串

boolean yn = true;
读取金额后:

int ExcAmount = keybStr.nextInt();
添加以下行以计算佣金结果,如下所示:

double result = 0.;//default value of result

//do the calculation 

if (yn) {
   result *= 0.01d;
} else { 
   result *= 0.02d;
}

现在,删除所有结果的重新声明,如
double result
到just
result
,因此我们只需将转换后的值添加到佣金中。

您的代码有许多不必要的变量和重复的行。关于如何清理它的详细讨论超出了本网站的范围,但您可能希望将其放在codereview.stackexchange.com上。在main()开头,将“yn”定义为false,将excmount定义为0,这样做不起作用。当我选择“n”作为帐户持有人时,它崩溃了。您是否适合编辑上面的代码,以便我了解您的意思?当您选择“n”时,崩溃错误消息是什么?但它是否打印了消息?我不明白您的意思。你说的同一维度是什么意思?我们到了。收回-1
isacthldr
并没有那么好。即使这也不是按照OP需要的金额计算佣金-1请注意,我的最终打印说明这包括佣金。可能是想买,而不是卖。抱歉,0.0.01或0.02乘以结果=>佣金。结果-佣金=>netPayment。我想-很抱歉造成混淆-现在它是正确的。