簡體   English   中英

嘗試在Java中使用數學能力時出錯

[英]Error when trying to use math powers in Java

我正在嘗試做公式FinalValue = InitialDeposit * (1 + r)^t ,其中t = yearsr = rate ,但是我很難確定正確的格式。

這就是我所擁有的,但是它總是在printf方法中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);

     }
}

首先,您的計算是錯誤的。

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

然后修復您的printf語句: 4.00%應該是4.00%%

問題在於線路-

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%的'%'符號,而無需這樣做,您將獲得轉換例外。 要轉義它,您需要在它之前使用一個額外的%

給出%%會為您提供所需的格式。

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鏈接http://ideone.com/S4CjJa

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM