数字问题,解答一下
我来说一下我具体的问题吧lastInterest += balance*annual/12;
我现在就是这个算下来小数点后面没有数字, 只有12.00,而没有12.12,我应该得12.12的,为什么后面是0呢?
lastInterest += (double)balance*annual/12; 这样也没用
----------------解决方案--------------------------------------------------------
你把表达式等号右边的整型数乘上1.0试试
----------------解决方案--------------------------------------------------------
还是不行
----------------解决方案--------------------------------------------------------
将12改为12.0
----------------解决方案--------------------------------------------------------
把整个环境都说说吧
比如你的那些变量的值都是多少
----------------解决方案--------------------------------------------------------
这个是整个程序
我现在这个程序小数点后面的数字无法显示,比如12.12,他只显示12.00,谁帮我改一下阿(我在下面标出了我觉得有问题的地方)
public class SavingsAccount
{
private double balance; // To hold balance
private double annualInterestRate;// annual interest rate
private double lastInterest; // To hold total interest rate
//Constructor
public SavingsAccount(double bal, double rate)
{
balance = bal;
annualInterestRate = rate;
}
//Add deposit to the current balance
public void deposit(double amount)
{
balance += amount;
}
//Subtract withdraw to the balance
public void withdraw(double amount)
{
balance -= amount;
}
//Calculate the total interest
public void addInterest()
{
lastInterest += balance*getInterestRate(); --------------我觉得这里有问题
}
//Return total balance
public double getBalance()
{
return balance+lastInterest;
}
//Return monthly interest rate
public double getInterestRate()
{
return annualInterestRate/12;
}
//Return total interest
public double getLastInterest()
{
return lastInterest;
}
}
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
import java.util.Scanner;//Needed for the Scanner class
import java.text.DecimalFormat;//Needed for decimal place
public class SavingsAccountTest
{
public static void main(String[] args)
{
double balance1; // To hold balance
double aInterest; // To hold annual interest
double month, dep, with; //To hold total months, deposite, withdraw
double dep1=0, with1=0;//count total deposite and withdraw
Scanner keyboard = new Scanner(System.in);
DecimalFormat f1 = new DecimalFormat("0.00");
// Get the intial balance
System.out.print("Enter the account's starting balance: ");
balance1 = keyboard.nextDouble();
// Get the annual interest rate
System.out.print("Enter the savings account's annual "
+"interest rate: ");
aInterest = keyboard.nextDouble();
// Get how many months have been passed
System.out.print("How many months have passed since the "
+ "account was opened? ");
month = keyboard.nextDouble();
// Create an instance of the CellPhone class,
// passing the data that was entered as arguments
// to the constructor.
SavingsAccount acc = new SavingsAccount(balance1, aInterest);
for (int n=1; n<=month; n++)
{
System.out.print("Enter the amount deposited during month "
+ n + ": ");
dep = keyboard.nextDouble();
dep1 +=dep;
acc.deposit(dep);
System.out.print("Enter the amount withdrawn during month "
+ n + ": ");
with = keyboard.nextDouble();
with1 +=with;
acc.withdraw(with);
acc.addInterest();
}
// Get the data from the phone and display it.
System.out.println("Total deposited: $"+ f1.format(dep1));
System.out.println("Total withdrawn: $" + f1.format(with1));
System.out.println("Interest earned: $" + f1.format(acc.getLastInterest()));
System.out.println("Ending balance: $" + f1.format(acc.getBalance()));
}
}
----------------解决方案--------------------------------------------------------
支持 版主!!!
lz以下是你程序的结果:
Enter the account's starting balance: 12.12
Enter the savings account's annual interest rate: 12.12
How many months have passed since the account was opened? 12.12
Enter the amount deposited during month 1: 12.12
Enter the amount withdrawn during month 1: 12.12
Enter the amount deposited during month 2: 12.12
Enter the amount withdrawn during month 2: 12.12
Enter the amount deposited during month 3: 12.12
Enter the amount withdrawn during month 3: 12.12
Enter the amount deposited during month 4: 12.12
Enter the amount withdrawn during month 4: 12.12
Enter the amount deposited during month 5: 12.12
Enter the amount withdrawn during month 5: 12.12
Enter the amount deposited during month 6: 12.12
Enter the amount withdrawn during month 6: 12.12
Enter the amount deposited during month 7: 12.12
Enter the amount withdrawn during month 7: 12.12
Enter the amount deposited during month 8: 12.12
Enter the amount withdrawn during month 8: 12.12
Enter the amount deposited during month 9: 12.12
Enter the amount withdrawn during month 9: 12.12
Enter the amount deposited during month 10: 12.12
Enter the amount withdrawn during month 10: 12.12
Enter the amount deposited during month 11: 12.12
Enter the amount withdrawn during month 11: 12.12
Enter the amount deposited during month 12: 12.12
Enter the amount withdrawn during month 12: 12.12
Total deposited: $145.44
Total withdrawn: $145.44
Interest earned: $146.89
Ending balance: $159.01
----------------解决方案--------------------------------------------------------
你如果输入 1000, 0.12, 100, 0, 110, 10, 120, 20结果就不对了,你会发现Interest earned小数点后面是零,其实应该有是36.36好像是
----------------解决方案--------------------------------------------------------
看了半天,看懂了。
我的神啦。晕了。
结果在这里:
System.out.println("Interest earned: $" + f1.format(acc.getLastInterest()));
大哥,方法错了吧。
acc.getInterestRate()这个方法.
----------------解决方案--------------------------------------------------------
soryy上面好象说错.
现在你看下:
我那个months输0可以吗?
Enter the account's starting balance: 110
Enter the savings account's annual interest rate: 10
How many months have passed since the account was opened? 0
Total deposited: $0.00
Total withdrawn: $0.00
Interest earned: $91.67
Ending balance: $201.67
----------------解决方案--------------------------------------------------------