【VBA】数値を整数化する方法(Int関数, Fix関数, Round関数)
今回はVBAで数値を整数化する方法を紹介します。
数値の整数化にはInt関数もしくはFix関数を使います。
普通に使う分には気にしなくて良いのですが、負の数を正数化しようとするとInt関数とFix関数で結果に違いが出てきます。
もし負の数を正数化する場合はInt関数とFix関数の違いについても理解しておきましょう。
数値を整数化する方法
Sub Sample()
Const num = 3.7
Debug.Print Int(num) '3(切り捨て)
Debug.Print Fix(num) '3(切り捨て)
Debug.Print Round(num, 0) '4(四捨五入)
End Sub
サンプルコードのようにInt関数、Fix関数ともに小数点以下を切り捨てた値を返します。
また、Round関数は四捨五入した値を返します。Round関数の第2引数は小数点以下何桁とするかを指示します。 (整数化するためにここでは0を指定)
Int関数とFix関数の違い(負の数を正数化)
Sub Sample2()
Const num = -3.7
Debug.Print Int(num) '-4(マイナス方向へ正数化)
Debug.Print Fix(num) '-3(プラス方法へ正数化)
Debug.Print Round(num, 0) 'ー4(四捨五入)
End Sub
負の値を整数化する場合にはInt関数とFix関数で結果に差が出てきます。
数値が負の場合、Intは数値以下の最初の負の整数を返しますが、Fixは数値以上の最初の負の整数を返します。たとえば、-8.4はIntでは-9に変換されますが、Fixでは-8に変換されます。
- Int関数はより値を切り上げしてマイナス方向に整数化します。
- Fix関数はより値を切り捨てしてプラス方向に整数化します。
負の値を扱う場合は注意して使いましょう。
特殊なケースを想定していないのならばRound関数で四捨五入するのもおすすめです。