Java 使用if-else语句的货币转换问题导致0

Java 使用if-else语句的货币转换问题导致0,java,if-statement,casting,double,Java,If Statement,Casting,Double,当乘以小于0的两倍(如日元到美元的转换)时,结果为0。我试图使用强制转换操作符并强制转换,但没有成功。我做错了什么 else if(pick == 3){ if(pick2 == 1){ monz2 = (double)monz * (double)0.00967135; } if(pick2 == 2){ monz2 = (double)monz * (double

当乘以小于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,无论是否使用强制转换运算符。

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

试试这个:

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

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

试试这个:

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

发现实际问题在if语句嵌套中出错。因此,如果(pick==1)为false,则不会测试任何其他pick选项。感谢您的帮助。

发现如果语句嵌套,实际问题就乱七八糟了。因此,如果(pick==1)为false,则不会测试任何其他pick选项。感谢您的帮助。

数据类型已经是转换货币/转换成什么的双精度(monz/monz2是双精度)在决定从哪个国家转换时,int的唯一用途是1-4。您不必在数字前加双精度。如果是double,你为什么要输入它呢?它运行得很好,我运行了这个程序。数据类型已经是double,表示转换的货币/转换的对象(monz/monz2是double)。int的唯一用法是1-4,用于决定转换来自哪个国家。你不必在数字前面加上double。如果它是双倍的,你为什么打字呢?它很好,我运行了这个程序。