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って変数の中身をバイト列でダンプとかできんのか?だれかおせーて(>_<)