2018年10月17日水曜日

マイナス値のfloor,trunc,ceil,roundとキャストの違い

浮動値を整数値に丸める時に利用できる関数は、floor,trunc,round,ceilやキャストが思いつくと思いますが、何も考えずに利用すると負数が入った場合に思わぬバグの要因となります。

floor
は語句の通り常に下さい値の方へ向かい、それ以外は0に近づくように動くと考えればいいでしょう。キャストはSQLでは違う結果となります。

floor(-1.8)

-2

trunc(-1.8)

-1

ceil(-1.8)

-1

round(-1.5)

-2

(int)(-1.8)

-1


trunc
は実装されていない言語系もあります(php)のでその場合はキャストを利用できるかもしれません。
利用には実際の処理系で確認して下さい。

0 件のコメント:

コメントを投稿