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)

↑このページ(CInt関数・Fix関数・Int関数) 先頭へ | すぐ使えるADO.NET ホームへ
Copyright© すぐ使えるADO.NET. All rights reserved.
