Excel VBA Int関数で小数点を切り捨てた整数を取得する

VBA関数

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
タイトルとURLをコピーしました