Fix関数 [VB]

VB2012-2017

正数は切上げ・負数切捨て

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