師匠の散歩

きままにPerlでも

床関数/floor

ある値を超えない最大の整数を求める関数を作成する/ getFloor.cgi

暦のことを調べていると、参考文献では床関数(floor関数)というものが出てくることが多い。 Perlの参考文献をコピーしているときは気にならなかったが、JavaScriptの元ソースを見て愕然。 ちゃんと、Math.floor()と床関数を使っているのだ。

そこで、自分のPerl環境を見たときに、int(-2.3)がどのような回答をするのか見てみたら、  int(-2.3) = -2  と返すではないか。 Perlの組込関数にfloor()はなさそうなので、ここで作成しておこうとした次第である。 完成後は、Use Calender; で呼び出すことにする。

Perlで記述する上で重要なのが、床関数の定義である。一般的には int が使えそうな気がするが負の値に対する挙動が異なる。VB言語から他の言語に変換する場合、名称が同じint関数をPerlで使う場合は注意が必要である。なお、Javascriptでは箱関数としてfloor()が搭載されている。ちなみに、エクセルのfloor()は「単純切捨て」になるので要注意。

床関数
床関数( 3.5 ) => 3.5 、 床関数( -3.5 ) => -4
INT関数
Perl     :小数点を切り捨てて、 perl::int (-3.5 ) => -3
エクセル   :引数を超えない最大の整数 エクセル::int( -3.5) => -4
VB      :引数を超えない最大の整数 VB::int( -3.5) => -4
JavaScript:内部関数には見当たらない
C言語    :内部関数には見当たらない

検証

数値を入力してください。
ボタンを押すと実行します
スクリプト(抜粋)

getFloor.cgi // Topに戻る // indexに戻る
Copyright(C) 2009-2021 Grandmaster Last up : 2020/09/18