pow(5, 2) が 24 を返すのはなぜですか?
電卓プログラムで、次の関数を使用すると予期しない動作が発生します。関数。 5^2 は 25 に等しいと予想されますが、pow(5, 2) は 24 を返します。この矛盾は、pow() 関数のデータ型処理が原因で発生します。
pow() 関数は浮動小数点数を返します。ポイント番号。特定のケースでは、pow(5, 2) は実際には 24.99997 または同様の浮動小数点値を返します。ただし、結果を整数変数に代入しているため、最も近い整数に切り捨てられ、結果は 24 になります。
この問題に対処するには、次の 2 つの考慮事項があります。
丸めと切り捨て: べき乗関数の場合、四捨五入するのが適切です。浮動小数点の結果を最も近い整数に変換します。これにより、丸め誤差が生じることなく精度が保証されます。これを実現するには、結果を整数変数に代入する前に 0.5 を加算します。
int answer; answer = pow(number1,number2)+0.5;
以上が`pow(5, 2)` が 25 ではなく 24 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。