在 Java 中尝试使用数学幂时出错

Error when trying to use math powers in Java

我正在尝试计算方程式 FinalValue = InitialDeposit * (1 + r)^t,其中 t = yearsr = rate,但我很难找出正确的格式。

这就是我所拥有的,但它一直在 printf 方法中抛出转换错误。

这是我的代码:

package cs520.hw2.part1;

import java.lang.Math;

public class BankingProceduralStyle {

    public static void main(String[] args) {

        // bankACalc;
        int bankAyears = 3;
        double bankADeposit = 5000;
        double bankARate = 0.04;

        double bankAFinalValue = bankADeposit * (1 + bankARate) * Math.pow(0.04, 3);

        System.out.printf("BankA %s CD of %.2f at 4.00% rate is worth $%.2f ", bankAyears, bankADeposit, bankAFinalValue);

     }
}

问题出在行 -

System.out.printf("BankA %s CD of %.2f at 4.00% rate is worth $%.2f ", bankAyears, bankADeposit, bankAFinalValue);

如你所见,你已经写了4.00% rate。现在这被解释为 %r。删除 %,或添加另一个 %,你应该可以开始了

替换

System.out.printf("BankA %s CD of %.2f at 4.00% rate is worth $%.2f ", bankAyears, bankADeposit, bankAFinalValue);

System.out.printf("BankA %d CD of %.2f at 4.00%% rate is worth $%.2f ", bankAyears, bankADeposit, bankAFinalValue);

原因

您需要转义 4.00% 中的 '%' 符号,否则会出现转换异常。要转义它,您需要在它之前使用一个额外的 %

首先,你的计算有误

double bankAFinalValue = bankADeposit * Math.pow((1 + bankARate), bankAyears);

然后修正你的 printf 语句:4.00% 应该是 4.00%%.

提供 %% 即可获得所需的格式。

import java.lang.Math;

class Ideone {

public static void main(String[] args) {

// bankACalc;
int bankAyears = 3;
double bankADeposit = 5000;
double bankARate = 0.04;

    double bankAFinalValue =bankADeposit *(1 + bankARate)*Math.pow(0.04,5);


        System.out.printf("BankA %s CD of %.2f at 4.00%% rate is worth $%.6f ", bankAyears, bankADeposit, bankAFinalValue);



     }

}

Ideone link 上述程序 http://ideone.com/S4CjJa