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