[PHP-users 34457] Re: ceil関数について

Michiyoshi Buniu buniu @ dream-link.jp
2009年 3月 23日 (月) 15:00:46 JST


豊丹生と申します。

> float(1005)

最初のこの時点でintではなくfloatになっているという時点で、
小数点のかけ算が正確にはできてないことになると思います。

http://us.php.net/float
の「警告」にあります。

1500 * 67 / 100
と比較すると違いが分かるのでは。

----- Original Message ----- 
From: "home" <mayo @ b-gets.ddo.jp>
To: <php-users @ php.gr.jp>
Sent: Monday, March 23, 2009 2:38 PM
Subject: [PHP-users 34454] ceil関数について


> こんにちわ。
> 寺尾です。
>
> 久しぶりの投稿になりますが、ceil関数の挙動について
> 不思議な現象が発生しましたので、ご教授いただきたく思います。
>
> $a = 1500 * 0.67;
> var_dump($a);
>
> $b = ceil($a);
> var_dump($b);
> 上記のスクリプトを実行しますと下記のような結果が返ってきます。
> float(1005)
> float(1006)
>
> マニュアルを見ますと
>
> value  の次に大きい整数値を返します。
>
> とあります。
>
> そこで試しに下記実行、
> $c = (float)1005;
> var_dump($c);
> $d = ceil($c);
> var_dump($d);
>
> 結果は、
> float(1005)
> float(1005)
>
> となりました。
>
> 私としましては、結果はすべて
> float(1005)
> となるものと思っていたのですが。
>
> 上記の挙動はどのような現象なのでしょうか。
>
> 質問の仕方がいまいちわからなかったので、
> ぐだぐだな文章になってしまいましたが、
> 何卒よろしくお願いいたします。
>
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
> 



PHP-users メーリングリストの案内