碼1 2個類似的計劃不同的價值: 1級爲什麼我得到下面,即使我只改變類型的方法的價值
import java.text.NumberFormat;
public class testing2 {
int balance;
void addInterest(int rate) {
balance += balance*(rate/100);
}
void display() {
NumberFormat currency = NumberFormat.getCurrencyInstance();
System.out.print ("The balance is ");
System.out.print(currency.format(balance));
}
}
2級
import java.util.Random;
public class testing {
public static void main (String args[]) {
testing2 aTesting = new testing2();
Random Myrandom = new Random();
aTesting.balance = Myrandom.nextInt(501);
int rate2 = 5;
System.out.println("Current balance: " + aTesting.balance);
System.out.println("Current rate: " + rate2);
aTesting.addInterest(rate2);
aTesting.display();
System.out.println();
}
}
OUTPUT:
當前餘額:327 當前速度:5 的平衡是MYR327.00
代碼2: 1類
import java.text.NumberFormat;
public class testing2 {
double balance;
void addInterest(double rate) {
balance += balance*(rate/100);
}
void display() {
NumberFormat currency = NumberFormat.getCurrencyInstance();
System.out.print ("The balance is ");
System.out.print(currency.format(balance));
}
}
2類
import java.util.Random;
public class testing {
public static void main (String args[]) {
testing2 aTesting = new testing2();
Random Myrandom = new Random();
aTesting.balance = Myrandom.nextInt(501);
double rate2 = 5;
System.out.println("Current balance: " + aTesting.balance);
System.out.println("Current rate: " + rate2);
aTesting.addInterest(rate2);
aTesting.display();
System.out.println();
}
}
OUTPUT:
當前餘額:170.0 當前速度: 5.0 餘額爲MYR178.50
結論:第一個程序在第二個程序沒有改變餘額的最終值時。這是什麼原因?我只是將變量的類型從int更改爲double而沒有更多。
爲什麼你不製作標題,然後把問題放在身體裏? –
我真的不明白你爲什麼要粘貼兩次相同的類。你可以寫出你改變的那一行。 – janos
問題完全出現在「rate/100」表達式中。當'rate'是值爲5的'int'時,該表達式的值爲0,因爲除法是在整數運算中執行的。 –