我是Java語言的初學者,我遇到了具有'不兼容類型:可能有損地從double轉換爲int'的代碼的問題。我能做些什麼來解決這個問題?我完全失去了它。不兼容的類型:使用開關case可能有損地從double轉換爲int
import javax.swing.*;
import java.text.*;
public class CalculateIncome{
public static void main(String[]args){
String s1, outMessage;
double monthlySales, income;
DecimalFormat num = new DecimalFormat(",###.00");
s1 = JOptionPane.showInputDialog("Enter the value of monthly sales:");
monthlySales = Double.parseDouble(s1);
switch(monthlySales) {
case 1:
income = 200.00+0.03*monthlySales;
break;
case 2:
income = 250.00+0.05*monthlySales;
break;
case 3:
income = 300.00+0.09*monthlySales;
break;
case 4:
income = 325.00+0.12*monthlySales;
break;
case 5:
income = 350.00+0.14*monthlySales;
break;
case 6:
income = 375.00+0.15*monthlySales;
default:
outMessage = ("For the monthly sales of $" +num.format(monthlySales)+ "\nThe income is"+num.format(income));
}
JOptionPane.showMessageDialog(null,outMessage,"QuickTest Program 5.5b", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
一個double不是一個int,不應該被視爲這樣。 1.01不是1,也不是0.001 – Stultuske
如果我爲月銷售額輸入「1.5」,該怎麼辦?那麼你期望它做什麼? –
我想你的問題在'switch(monthlySales)'行中。開關接受int而不是Double。你可以使用'Integer.parseInt()'而不是'Double.parseDouble' –