引用:
また、
x=-1.9 : y=CInt(x)
とすると、y=-1となる(Fixと同じ動作をする)が、
ヘルプにはCIntは四捨五入とあり、ヘルプどおりの動作をしない。。
ヘルプの表現が間違ってるんだと思います。
CDbl関数やCSng関数を見ると分かりますけど、これらの関数はたんに型変換をいっそう明示する為の関数です。
CInt関数の定義は以下のようになっています。
コード:
Function CInt(ByVal number As Double) As Long
CInt=number As Long
End Function
指定された倍精度浮動小数点型の数値を整数型に変換してるだけですね。
あ。以下のようにマクロ関数にしても良さそうですね。ダメなのかな?
コード:
Const CDbl(number) = number As Double
Const _CUDbl(number) = number As Double
Const CDWord(num) = num As DWord
Const CInt(number) = number As Long
Const CSng(number) = number As Single
追記。
小数点型(?)を整数型に変換する時、死者誤入してくれないっていうバグとも言えますし、小数点型を整数型に変換する時、四捨五入してくれっていう要望もできますね。