INTも時々使う関数ですね。
整数化するんですが、正確に書くと…
「元の数を超えない、最大の整数」を返します。
これだと、端数を切り捨てる「ROUNDDOWN」と同じだ!、って思うでしょ!?
例えば、「-1.2」を整数化する場合、
ROUNDDOWNで切り捨てると、-1になります。
一方、INTを使うと、実は-2になるんです。
「-1.2を超えない最大の整数」は、-2なんです。
四捨五入して、-1から1になるのは、小数第2位までとして、
INTだと-0.99~1.99まで、2.98の幅の値を取りますね。
1~3でも、1.00~3.99で、幅は2.99。
だいたい同じです。
ところが、ROUNDDOWNの場合。
1~3は、INTと同じ、2.99の幅です。
でも、-1~1だと、-1.99~1.99までになり、3.98もの幅を拾ってしまうんです。
多分、これが都合が悪い状況が、あるんでしょうね。
ゼロを挟むと、整数化する範囲が、変わってしまうことが。
乱数(一定範囲のめちゃくちゃな数)なんかだと、発生した乱数を整数化して使うことが多いですが、整数によって、確率に差が出てしまうと、マズいわけです。
例えば、-1以上1未満の乱数を、ROUNDDOWNで整数化すると、0の確率が高い、一様でない乱数になってしまいます。
なので、昔からプログラムをする人は、このINTをよく使います。
逆に、
「INT(-1.2)=-2」になる現象を、忘れないようにしないといけないんですが。
次は「MIN」です
kiha-gojusan-hyakusan.hatenablog.com
前は「TODAY」です
kiha-gojusan-hyakusan.hatenablog.com