ホームページ >バックエンド開発 >C++ >`pow(5,2)` が 25 ではなく 24 を返すのはなぜですか?

`pow(5,2)` が 25 ではなく 24 を返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-14 22:02:18756ブラウズ

Why Does `pow(5,2)` Return 24 Instead of 25?

Pow 関数の不一致: pow(5,2) が 24 と等しい理由

プログラミングでは、数値のべき乗を計算するために pow() 関数が使用されます。ただし、特定のシナリオでは、予期しない結果が返される可能性があります。 pow(5,2) が 24 を返す場合を調べてみましょう。

提供されたコードでは、pow() 関数は 2 つの整数引数、number1 とnumber2 を取ります。数値 1 の数値 2 乗を評価し、その結果を整数変数の答えに割り当てます。たとえば、pow(5,2) は 25 を生成するはずです。

ただし、pow(5,2) は代わりに 24 を返すことに注意してください。これは、C 数学ライブラリの pow() 関数が結果を返すために発生します。倍精度浮動小数点数として。この場合、実際の結果は 25 に近いと考えられますが、浮動小数点演算の精度制限により、多少の誤差が生じる可能性があります。

この問題を解決するには、「」と呼ばれる手法を採用できます。丸め」を使用して、浮動小数点の結果を整数に明示的に変換します。これを実現する 1 つの方法は、結果が最も近い整数に切り上げられるようにする ceil() 関数を使用することです。

たとえば、次のコード変更により pow() 関数の動作が修正されます。

int answer;
answer = ceil(pow(number1, number2));

この変更を組み込むことにより、pow() 関数がべき乗の数学的演算を正確に反映することを保証でき、pow(5,2) が確実に期待値は25。

以上が`pow(5,2)` が 25 ではなく 24 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。