Int, Fix Functions (Visual Basic)

Return the integer portion of a number.

Public Shared Function Int( _
    ByVal Number As { Double | Integer | Long | Object | Short | Single | Decimal }) _
    As { Double | Integer | Long | Object | Short | Single | Decimal }
Public Shared Function Fix( _
    ByVal Number As { Double | Integer | Long | Object | Short | Single | Decimal }) _
    As { Double | Integer | Long | Object | Short | Single | Decimal }

Parameters

  • Number
    Required. A number of type Double or any valid numeric expression. If Number contains Nothing, Nothing is returned.

Exceptions

Exception type

Error number

Condition

ArgumentNullException

5

Number is not specified.

ArgumentException

5

Number is not a numeric type.

See the "Error number" column if you are upgrading Visual Basic 6.0 applications that use unstructured error handling. (You can compare the error number against the Number Property (Err Object).) However, when possible, you should consider replacing such error control with Structured Exception Handling Overview for Visual Basic.

Remarks

Both the Int and Fix functions remove the fractional part of Number and return the resulting integer value.

The difference between Int and Fix functions is that if Number is negative, Int returns the first negative integer less than or equal to Number, whereas Fix returns the first negative integer greater than or equal to Number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8.

Fix(number) is equivalent to Sign(number) * Int(Abs(number)).

Example

This example illustrates how the Int and Fix functions return integer portions of numbers. In the case of a negative number argument, the Int function returns the first negative integer less than or equal to the number; the Fix function returns the first negative integer greater than or equal to the number. The following example requires you to specify Option Strict Off because implicit conversions from type Double to type Integer are not allowed under Option Strict On:

' This code requires Option Strict Off 
Dim MyNumber As Integer
MyNumber = Int(99.8)   ' Returns 99.
MyNumber = Fix(99.8)   ' Returns 99.

MyNumber = Int(-99.8)  ' Returns -100.
MyNumber = Fix(-99.8)  ' Returns -99.

MyNumber = Int(-99.2)  ' Returns -100.
MyNumber = Fix(-99.2)  ' Returns -99.

You can use the CInt function to explicitly convert other data types to type Integer with Option Strict Off. However, CInt rounds to the nearest integer instead of truncating the fractional part of numbers. For example:

MyNumber = CInt(99.8)    ' Returns 100.
MyNumber = CInt(-99.8)   ' Returns -100.
MyNumber = CInt(-99.2)   ' Returns -99.

You can use the CInt function on the result of a call to Fix or Int to perform explicit conversion to integer without rounding. For example:

MyNumber = CInt(Fix(99.8))   ' Returns 99.
MyNumber = CInt(Int(99.8))   ' Returns 99.

For more information on CInt, see Type Conversion Functions.

Requirements

Namespace:Microsoft.VisualBasic

**Module:**Conversion

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

See Also

Reference

Type Conversion Functions

Integer Data Type (Visual Basic)

Math Summary

Math Functions (Visual Basic)

Conversion Summary

ArgumentNullException