public class BankProcents {
public static void main(String[] args) {
double vklad = 1000;
double procent = 0.02;
for (int year = 1; year <= 5; year++) {
vklad += vklad * procent;
System.out.println("За " + year + " год, на вашем счету появилась " + vklad + " сумма долларов");
}
}
}
我看到这样一个计算银行利息的程序,我不明白为什么如果我们计算每年 2%,那么我们写的是 0.02,而不是 0.2?
你不能数钱
double,这是由于数字表示的准确性(IEEE754)的特殊性,我想注意这个错误可以在生产中的许多实际系统中找到。根据所需的准确度,计算几美分或几美分
long。BigInteger关于这个问题:
100% == 1100%/50 == 1/502% == 0.02这是变体
long