Fix Function

Named Arguments

No

Syntax

Fix(number)

number

Use: Required

Data Type: Numeric

Any valid numeric expression.

Return Value

The same data type as passed to the function containing only the integer portion of number.

Description

Removes the fractional part of a number. Operates in a similar way to the Int function.

Rules at a Glance

  • If number is Null, Fix returns Null.

  • The operations of Int and Fix are identical when dealing with positive numbers: numbers are rounded down to the next lowest whole number. For example, both Int(3.14) and Fix(3.14) return 3.

  • If number is negative, Fix removes its fractional part, thereby returning the next greater whole number. For example, Fix(-3.667) returns –3. This contrasts with Int, which returns the negative integer less than or equal to number (or –4, in the case of our example).

Example

Sub TestFix()

   Dim dblTest As Double
   Dim varTest  As Variant

   dblTest = -100.9353
   varTest = Fix(dblTest)
   ' returns -100
   Debug.Print varTest & " " & TypeName(varTest) 

   dblTest = 100.9353
   varTest = Fix(dblTest)
   'returns 100
   Debug.Print varTest & " " & TypeName(varTest) 

End Sub

Programming Tips and Gotchas

Fix doesn't round number to the nearest whole number; it simply removes the fractional part of number. Therefore, the integer returned by Fix is the nearest whole number less than (or greater than, if the number is negative) the number passed to the function.

See Also

Int Function, CInt Function, CLng Function

Get VB & VBA in a Nutshell: The Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.