私は C++ クラスの宿題をしていて、かなり単純な数学関数と思われることをしようとしていますが、期待どおりの結果が返されないため、困惑しています。基本的に、これは APR の問題であり、APR から月利に変換しようとしています。私のインストラクターは、これを計算するために次の式を教えてくれました。
- 月々の利息 = ((APR / 100) + 1)^(1/12)
これが私が使用しているコードです。単純な間違いを犯していないことを確認していたので、yearlyInterest をmonthlyInterest の計算から分離しました。
double balance, payment, APR;
cin >> balance >> payment >> APR;
const double yearlyInterest = (APR / 100) + 1;
const double monthlyInterest = pow(yearlyInterest, 1/12)
入力 1000、100、および 19.9 を使用して、物理計算機で取得した結果と、期待する結果は次のとおりです。
- 年利 ~1.19
- 月利 ~1.015...
しかし、私のデバッガーが私に与えている結果は次のとおりです。
- 年利 ~1.19
- 月利 = 1
基本的に、私のmonthlyInterestが間違っている理由を尋ねていますか? pow() は double を出力するため、型の問題ではないと思います。また、小数が double 型をオーバーフローする必要はないと思います。それほど大きくはなく、とにかく数桁の精度しか必要ありません。誰かが私が犯した間違いを特定するのを手伝ってくれるなら、私はそれを感謝します.
補足:以下を含めました。それが私が学んだことだからです。これが問題なら、私はそれを変えることができます。
#include <iostream>
#include <cmath>