PHPのintval()にfloatを渡したときの話 #php #教えて偉い人
以下のようなコードを実行致します。
<?php function test($v) { var_dump($v); var_dump(intval($v)); } echo("----\n"); test(0.201 * 1000); echo("----\n"); test(2.01 * 100); echo("----\n"); test(20.1 * 10); echo("----\n"); test((float)201); ?>
以下のような結果になるわけです。
>php a.php ---- float(201) int(201) ---- float(201) int(200) ---- float(201) int(201) ---- float(201) int(201) >
どれも「intval()」に「floatな201」を渡してるにも関わらず、2番目だけ戻りが「intの200」になっちゃう。
var_dump()する限り「floatな201」で違いが判らんのだが、そこまでの演算によって内部的には違ってるんだろうか。
PHPって変数の中身をバイト列でダンプとかできんのか?だれかおせーて(>_<)