【问题标题】:Currency Conversion Issue using if else statements result in 0使用 if else 语句的货币转换问题导致 0
【发布时间】:2016-10-19 23:31:12
【问题描述】:

当乘以小于 0 的双倍时,例如日元到美元的转换,结果为 0。我尝试使用强制转换运算符并强制转换无济于事。我在这里做错了什么?

     else if(pick == 3){
            if(pick2 == 1){
            monz2 = (double)monz * (double)0.00967135;
            }
            if(pick2 == 2){
            monz2 = (double)monz * (double)0.00787155;
            }
            }
            if(pick2 == 4){
            monz2 = (double)monz * (double)0.00881142;
            }

1 = 美元,2 = 英镑,3 = 日元,4 = 欧元。 我被告知使用 if else 语句来创建选项以及格式化解决方案。 monz 是用户输入值 monz2是转换后的输出。

在代码的最终版本中,所有这些计算的结果都是 0,无论是否使用强制转换运算符。

【问题讨论】:

    标签: java if-statement casting double


    【解决方案1】:

    这可能是您用于 monz2 的数据类型。

    试试这个:

     int dollar = 10;
    double yen = dollar*0.00967135;
    System.out.println(yen);
    

    【讨论】:

    • 数据类型已经是被转换的货币的双精度数/转换成的数据类型(monz/monz2 是双精度数),int 的唯一用途是 1-4 来决定从哪个国家/地区进行转换。跨度>
    • 您不必在数字前加上 double。如果它是双倍的,为什么要对它进行类型转换。它运行良好,我运行了程序。
    【解决方案2】:

    发现实际问题搞砸了 if 语句嵌套。因此,如果 (pick==1) 为 false,则不会测试其他选择选项。感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 2021-05-15
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多