Access。小数点を切り捨てするには、Int関数とFix関数があるけど、どう違うの。
<Access:Int関数・Fix関数>
Excelには、小数点以下を切り捨てるINT関数とTRUNC関数という2つの関数がありますが、Accessにも、Int関数とFix関数というのがあります。
そこで、Int関数とFix関数の違いを確認しておきましょう。
次のテーブルを用意しました。
それでは、Int関数とFix関数をつかったクエリを作成してみます。
Int関数という演算フィールドには、
Int関数: Int([数値])
Fix関数という演算フィールドには、
Fix関数: Fix([数値])
を設定しました。
では、実行してデータシートビューで確認してみましょう。
NO1とNO2のデータですが、5.1も5.5も小数点以下が切り捨てられていて、Int関数もFix関数とも「5」という値が算出されました。
Int関数もFix関数も差が無いようです。
しかしながら、実際にはInt関数とFix関数には違いがあります。
Int関数は、数値以下の最大の整数を算出することができます。
一方
Fix関数は、数値の小数部分を取り除いた数値を算出することができます。
つまり、「正数」のときには、「差」がないのですが、「負数」のときには、算出結果が異なっていることが確認できます。
No3の「-3.1」をInt関数で算出させると、「-4」と算出されます。
Int関数は数値が小さくなる方に向かって算出されるようになっています。
No4の「-2.9」も同様に小さい値である「-3」を算出していることが確認できます。
Int関数は小数点以下を切り捨てるイメージなので、「-3.1」は「-3」になるイメージがしますが、そういうわけではないのです。
逆に、「正数」ではInt関数と同じ算出結果だったFix関数はというと、No3の「-3.1」は、「-3」。
No4の「-2.9」は「-2」と算出されています。
Fix関数は「0」に向かって値が算出されていることがわかります。
Fix関数の方が「-3.1」が「-3」と算出されているので、イメージに近い算出結果だといえます。
このように、Int関数とFix関数には、「負数」の時に違いが生じますので、使用する時にケースバイケースで使い分ける必要があります。
Accessの関数はExcelの関数程、種類はありませんが、ExcelのINT関数とTRUNC関数の関係性と同じような、Int関数とFix関数というのが用意されていますので、注意が必要になってきます。