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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 20:45:12838ブラウズ

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

pow(5,2) が実際の値ではなく 24 を出力する理由

問題:

数学関数を備えた単純な計算機では、pow () 関数は、特にべき乗に関して不正確な結果を生成しているようです。 pow(5,2) 操作は 24 を返しますが、これは正しくありません。

解決策:

この不一致の理由は、データ型の変換にあります。提供されたコードの pow() 関数は浮動小数点数を返しますが、結果は整数変数 (int Answer) に割り当てられます。その結果、変換時に数値の小数部分が切り捨てられます。

問題の修正:

正しい結果を得るには、浮動小数点を処理できるように計算を変更する必要があります。価値観。推奨されるアプローチは 2 つあります:

  1. 浮動小数点の結果の丸め:

    pow() の結果に代入する前に 0.5 を加算します。整数変数の場合、最も近い整数に丸めることができます。この方法は、結果が整数であると予想される場合に適しています。

    int answer;
    answer = pow(number1,number2) + 0.5;
  2. 浮動小数点の結果に非整数変数を使用する:

    結果が整数であることが保証されない場合は、変数の代わりに double または float 変数を使用することをお勧めします。整数。この方法では、数値の小数部分が保持されます。

    double answer;
    answer = pow(number1,number2);

平方根関数:

コード内の平方根関数も結果を代入しています。整変数に変換しますが、これは適切ではありません。平方根は非整数であることが多いため、結果を保存するには double または float 変数を使用することをお勧めします。

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

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