ホームページ > バックエンド開発 > PHPチュートリアル > PHP の強制型変換について簡単に説明します。使用には注意してください!_PHP チュートリアル

PHP の強制型変換について簡単に説明します。使用には注意してください!_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:08:26
オリジナル
1291 人が閲覧しました

PHP は弱く型付けされた言語です。これが利点であり特徴ですが、場合によってはそれに応じて型を変換する必要があります。

この時点で問題が発生します。多くの場合、型を変換した後に得られるデータが期待値と大きく異なることがわかるからです。

ここでは例としてプラスチックへの強制変換を使用します。

以下のコードを見ると、正解を伝えることは絶対に不可能であると言えます。
エコー (int) 123.999999999999999;
エコー (int) -1.9999999999999999;
エコー (int) -0.99999999999; 9999;
エコー (int) -10.9999999999;
エコー (int) -1000.9999999999999;エコー (int) -9999999999

私が得た結果を見てみましょう。

まず最初に、私のシステム環境を説明する必要があります。 win7X86

得られた結果は以下の通りです

124

-1

-2

-1
-10
-1001
-141006540​​7


公式声明は次のとおりです:

浮動小数点数から整数に変換する場合、ゼロに向かって丸められます。



浮動小数点数が整数の範囲 (通常 +/- 2.15e+9 = 2^31) の外にある場合、浮動小数点数には正確な整数を与えるのに十分な精度がないため、結果は不定になります結果。この場合、警告はなく、通知さえありません。
ここまで言いましたが、一言でまとめると、「精度が十分でなくても、私には関係ありません!」です。

これを見ると、上で挙げた例は少し現実離れしていると思われるかもしれません。それほど高い精度を使用することはまったく不可能だからです。

それでは、以下の例を見てみましょう。

エコー (int) ( (0.1+0.7) * 10 );

推測する必要はありません。ここでの実行結果は ---7 です!

はい、あなたは正しく読み、私は正しく入力しました。結果は、私たちが通常考えるような 8 ではなく、7 です。

これで、PHP がどれほどめちゃくちゃかわかりましたね!

PHP 公式には次の警告があります:

未知の分数を整数にキャストしないでください。予測できない結果が生じる可能性があります。

したがって、強制的な型変換を実行するときは注意してください。大きな数値、高精度、分数の使用には注意が必要です。 もちろん、上記の例はこの方法で処理できます。 x$num = (0.1 + 0.7) * 10;

echo (int) $num;




http://www.bkjia.com/PHPjc/327448.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/327448.html技術記事 PHP は型付けが弱い言語です。これが利点であり特徴ですが、場合によってはそれに応じて型を変換する必要があります。 ここで問題が発生します。なぜなら多くの場合…
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート