すぐ使えるADO.NET

【Visual BasicによるADO.NETデータベースプログラミング】

CInt関数・Fix関数・Int関数

Fix関数とInt関数は、共に小数部分を切り捨てた整数値を戻しますが、負数の場合は、戻値が異なります。CInt関数は常に最も近い整数に値を丸めます。


Fix関数とInt関数の違い

小数部分が0.5の時に限り、最も近い偶数に値を丸めます。

  Int関数の場合: Int(95 * 1.05)  --> 99
  Fix関数の場合: Fix(95 * 1.05)  --> 99
  Int関数の場合: Int(-95 * 1.05) --> -100
  Fix関数の場合: Fix(-95 * 1.05) --> -99

CInt関数

Option Strict Onの場合は、Double型からInteger型への暗黙の変換はできません。CInt関数でデータ型変換が必要です。Int(95 * 1.05) ならば、次のようにします。

  CInt(Int(95 * 1.05))

CInt関数は常に最も近い整数に値を丸めますが、小数部分が、0.5の時に限り、最も近い偶数に値を丸めますので、四捨五入にはなりません。

  CInt(2.4) --> 2
  CInt(2.5) --> 2
  CInt(2.6) --> 3

VBサンプルコーディング

'Option Strict On に設定しています

Dim zeikomiGaku As Integer

'Int関数の場合:zeikomiGaku = 99
zeikomiGaku = CInt(Int(95 * 1.05))

Trace.WriteLine("CInt(Int(95 * 1.05)) = " + zeikomiGaku.ToString)

'Fix関数の場合:zeikomiGaku = 99
zeikomiGaku = 
CInt(Fix(95 * 1.05))
Trace.WriteLine("CInt(Fix(95 * 1.05)) = " + zeikomiGaku.ToString)

'Int関数の場合:zeikomiGaku = -100
zeikomiGaku = CInt(Int(-95 * 1.05))
Trace.WriteLine("CInt(Int(-95 * 1.05)) = " + zeikomiGaku.ToString)

'Fix関数の場合:zeikomiGaku = -99
zeikomiGaku = CInt(Fix(-95 * 1.05))
Trace.WriteLine("CInt(Fix(-95 * 1.05)) = " + zeikomiGaku.ToString)

Trace.WriteLine("------------------------------------")

'CInt関数は常に最も近い整数に値を丸めますが、
'小数部分が、0.5の時に限り、最も近い偶数に値を丸めます

Trace.WriteLine("CInt(2.4)) = " + CInt(2.4).ToString)
Trace.WriteLine("CInt(2.5)) = " + CInt(2.5).ToString)
Trace.WriteLine("CInt(2.6)) = " + CInt(2.6).ToString)

Trace.WriteLine("------------------------------------")

Trace.WriteLine("CInt(-2.4)) = " + CInt(-2.4).ToString)
Trace.WriteLine("CInt(-2.5)) = " + CInt(-2.5).ToString)
Trace.WriteLine("CInt(-2.6)) = " + CInt(-2.6).ToString)


Copyright© すぐ使えるADO.NET. All rights reserved.

NEC デスクトップ(VALUESTAR G タイプLスタンダード)