-1

次のコード スニペットがあります。

int main()
{
  int x, R, m;
  double Y, D, P;

  cout << "Enter investment: ";
  cin >> x;

  cout << "Enter rate per year: ";
  cin >> R;

  cout << "Enter months: ";
  cin >> m;

  /* Convert to years. */
  Y = m / 12;

  D = x * pow ((1 + (R/100)), Y);

  P = D - x;

  cout << "Investment after " << Y << " years is " << D << " bucks.\n";
  cout << "Profit is " << Y << " year(s) is " << P << " bucks.\n";

cout の結果が正しく計算されず、何らかの理由で結果に小数が表示されません。

データ型と関係があると思います。

4

2 に答える 2

2

動作させるには、オペランドの少なくとも 1 つを double にします。

  Y = m / 12.;

  D = x * pow ((1 + (R/100.)), Y);
于 2013-09-18T01:13:25.580 に答える
1
D = x * pow ((1 + (R/100)), Y);

R/100両方のオペランドが int であるため、結果は整数になります。それが機能するためには、それらの少なくとも1つが必要doubleです。

D = x * pow ((1 + (R/100.0)), Y);
于 2013-09-18T01:12:10.657 に答える