如何在不转换为字符串的情况下返回double

时间:2016-02-10 00:26:38

标签: java string return double

public double futureInvestmentValue(int years) {
    DecimalFormat dfWithTwoDecimalPlaces;
    dfWithTwoDecimalPlaces = new DecimalFormat("0.00");
    double futureInvestmentValue = deposit * Math.pow((1 + (AnnualInterestRate / 12)), years * 12);
    return dfWithTwoDecimalPlaces.format(futureInvestmentValue);

我收到的错误是最后一行。它说:"类型不匹配:无法从String转换为double" 它要我改为公共字符串。

谢谢!

2 个答案:

答案 0 :(得分:2)

在方法签名中,将方法的返回类型声明为double。

然而,这一行:

return dfWithTwoDecimalPlaces.format(futureInvestmentValue);

调用返回String的方法。您必须决定此功能的效用以及是否需要它来返回预先格式化的值或将该责任留给调用者。

答案 1 :(得分:2)

public double futureInvestmentValue(int years) {
    // DecimalFormat dfWithTwoDecimalPlaces; // Don't need this
    // dfWithTwoDecimalPlaces = new DecimalFormat("0.00"); // Don't need this, either
    double futureInvestmentValue = deposit * Math.pow((1 + (AnnualInterestRate / 12)), years * 12); // This is *ALL* you need!
    //return dfWithTwoDecimalPlaces.format(futureInvestmentValue); // Nope: don't return a string!
    return futureInvestmentValue; // return the double!