正数は切上げ・負数切捨て
Fix関数は、引数に指定した数値の整数部分を返します。引数が正の数値なら、数値以下の最大の整数を、負の数値なら数値以上の最大の負の整数を返します。
Fix関数は負数の場合、切り上げになります。小数点以下を切り捨てる場合には、Int関数を使ってください。
たとえば、Fix(-3.4999)は-3 に、Int(-3.4999)は-4 になります。
Fix(3) ' 3 Fix(-3) ' -3 Fix(3.4999) ' 3 Fix(3.5000) ' 3 Fix(3.9999) ' 3 Fix(-3.4999) ' -3 切り上げ Fix(-3.5000) ' -3 切り上げ Fix(-3.9999) ' -3 切り上げ Int(-3.4999) ' -4 切り捨て Int(-3.5000) ' -4 切り捨て Int(-3.9999) ' -4 切り捨て
整数値に変換
Fix関数では、左辺と右辺のデータ型を同じデータ型にしてください。
' 変数の宣言 Dim inNum As Integer Dim ans As Integer ans = Fix(inNum)
左辺と右辺のデータ型が違う時は、データ型変換関数で右辺のデータ型を左辺のデータ型に変換してから代入します。
次の例では、CInt関数を使って整数に変換してから代入しています。
' 変数の宣言 Dim inNum As Double Dim anser As Integer ' 整数変換してデータ型を左辺に揃える anser = CInt(Fix(inNum))
四捨五入・切り捨て・切り上げについては、標準で関数が用意されています。
Fix関数を使ったサンプルプログラム
Fix関数を使ったサンプルプログラムです。0を入力するとプログラムが終了します。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim inNum As Double Dim ans As Double = 0 ' マイナス値も入力してみてください Do Console.WriteLine("** 数値を入力してください **") ' キーボードから入力 inStr = Console.ReadLine() ' 入力した文字列を整数に変換 inNum = Double.Parse(inStr) If inNum = 0 Then Exit Do Else ' Fix関数を使う ans = Fix(inNum) Console.WriteLine("Fix(" & inNum & ") = " & ans) End If Loop End Sub End Module