[英]Error when trying to use math powers in Java
我正在嘗試做公式FinalValue = InitialDeposit * (1 + r)^t
,其中t = years
, r = 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.