:これは、デバッガを介して実行されるJavaのMath.Pow()関数を返す混乱の結果
double monthlyRate = (0.7d/12);
int loanLength = 3;
double powerTest = Math.pow(1.00583, 36);
double powerResult = Math.pow((1 + monthlyRate),(loanLength * 12));
を、値が
になりますpowerTest => 1.2327785029794363
powerResult => 7.698552870922063
最初のものが正しいです。両方の割り当て行でMath.pow関数を実行しました。 powerTestについて、Math.powため パラメータはpowerResultについては ダブル=> 1.00583 ダブルB => 36.0
あり、彼らはダブル=> 1.0058333333333333 ダブルB => 36.0
ある私が知っています浮動小数点演算がマシンで実行される方法に問題があることは、私はそれを修正する方法がわかりません。あなたは整数の除算を使用していた
monthlyRate = Math.round(monthlyRate * 1000)/1000;
あなたは(1+(0.7/12))^(3?12)から何を期待していますか?私は7.6985528709220588862786を通常の電卓に入れます。 –
Javaの場合、お金の操作を実行するにはBigDecimalを使用する必要があります。私の答えをチェックしてください。 – vz0