• ベストアンサー

Objective-Cで累乗根

X÷Y(X/Y)のn累乗根に絡んだ計算をプログラミングをしようと下記のようにプログラムしたのですが、結果が0となりうまくいきません。アドバイスでも良いので、ご回答お願い致します。 float Z = pow(X / Y, 1 / n) -1*100; //計算結果 NSString *ZStr = [ NSString stringWithFormat: @"%f", Z ]; //計算結果書き出し P.text = [NSString stringWithFormat:@"%.3f",Z];

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

計算結果が0.0001以下だということはありませんか? P.text = [NSString stringWithFormat:@"%f",Z]; // 「.3」を外して、精度指定を廃止する。 これで確認を。精度指定を外すと、「%f」は、小数点以下6桁まで出力します。 ※関数「pow()」は、引数、返り値ともにdoble型なので、「float Z」に代入するのはもったいないです。doubleの変換指定記号は、「%lf」(エル・エフ)です。

takahi6
質問者

お礼

アドバイスありがとうございます。 精度指定を廃止してみたのですが、0.00000になってしまいました。 そこで、X、Y、n、Zをアドバイスのとおりdouble型にしてみたら、正しい計算結果が出ました。 それと、すぐに回答をいただいたことに感謝しております。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

float Z = pow(X / Y, 1.0 / n) -1*100; ――とか。nがintならですが。

takahi6
質問者

お礼

アドバイスありがとうございます。 試してみたのですが、結果は同じ0になってしまいました。 しかし、すぐに回答をいただいたことに感謝しております。

関連するQ&A

専門家に質問してみよう