数学関数を備えた単純な計算機では、pow () 関数は、特にべき乗に関して不正確な結果を生成しているようです。 pow(5,2) 操作は 24 を返しますが、これは正しくありません。
この不一致の理由は、データ型の変換にあります。提供されたコードの pow() 関数は浮動小数点数を返しますが、結果は整数変数 (int Answer) に割り当てられます。その結果、変換時に数値の小数部分が切り捨てられます。
正しい結果を得るには、浮動小数点を処理できるように計算を変更する必要があります。価値観。推奨されるアプローチは 2 つあります:
浮動小数点の結果の丸め:
pow() の結果に代入する前に 0.5 を加算します。整数変数の場合、最も近い整数に丸めることができます。この方法は、結果が整数であると予想される場合に適しています。
int answer; answer = pow(number1,number2) + 0.5;
浮動小数点の結果に非整数変数を使用する:
結果が整数であることが保証されない場合は、変数の代わりに double または float 変数を使用することをお勧めします。整数。この方法では、数値の小数部分が保持されます。
double answer; answer = pow(number1,number2);
コード内の平方根関数も結果を代入しています。整変数に変換しますが、これは適切ではありません。平方根は非整数であることが多いため、結果を保存するには double または float 変数を使用することをお勧めします。
以上がpow(5,2) 関数が 25 ではなく 24 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。