VBA関数のInt関数を使用して、小数点を切り捨てた整数を取得する方法をご説明します。
四捨五入をせずに、小数部分を切り捨てた整数を取得する際に使用します。
正の整数の場合は小数点を切り捨てた整数を取得しますが、負の整数を扱う場合には注意が必要です。
また、小数点を切り捨てる関数としては「Fix関数」がありますが、Int関数とFix関数の違いについても併せてご説明します。
1.Int関数の使い方
Int関数は指定した数値の小数点を切り捨てた整数を返します。
次のように記述します。
Int(数値)
「数値」には小数点を切り捨てたい数値、または数式を指定します。
引数「数値」が正の場合は「1.1~1.9」など、小数点部分が「0.1~0.9」であっても1を返します。
ただし、負の数値を扱う場合は「-1.1~-1.9」の場合は、「-1」ではなく指定した「数値」を超えない最大の負の整数の「-2」を返します。
Int関数とFix関数の違い
基本的に正の数値を扱う場合は同様の結果を返します。
ただし、負の数値を扱う場合は結果が異なります。
Int関数は上記でも説明した通りですが、次のように結果を返します。
1.1~1.9:1
-1.1~-1.9:-2
Fix関数は正の数値の場合は同じですが、負の数値の場合に異なります。
1.1~1.9:1
-1.1~-1.9:-1
この違いをしっかり理解したうえで使用しないと、意図した結果と異なる結果を扱ってしまうのでご注意ください。
2.サンプルコード
コード自体はいたって簡単ですが、下から2つの結果に関してはご注意ください。
意外と間違えやすい数式となります。
「-10×-1.11」は11.1となり、Int関数で「11」を返しますが、「-10×11.1」は-11.1となり、一見11を返しそうですが「-12」を返します。
Sub Sample1()
Debug.Print Int(1) '1
Debug.Print Int(10) '10
Debug.Print Int(1.1) '1
Debug.Print Int(1.9) '1
Debug.Print Int(-1) '-1
Debug.Print Int(-1.1) '-1
Debug.Print Int(-1.9) '-2
Debug.Print Int(-1 - 0.1) '-2
Debug.Print Int(-10 * 1.11) '-12
Debug.Print Int(-10 * -1.11) '11
End Sub