Java 使用if-else语句的货币转换问题导致0
当乘以小于0的两倍(如日元到美元的转换)时,结果为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
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。如果它是双倍的,你为什么打字呢?它很好,我运行了这个程序。