CInt
Converts a numeric or string expression to an `Integer` or an `Integer<bits>`
Syntax
`
Declare Function CInt ( ByVal expression As datatype ) As Integer
Declare Function CInt<bits> ( ByVal expression As datatype ) As Integer<bits>
Type typename
Declare Operator Cast ( ) As Integer
Declare Operator Cast ( ) As Integer<bits>
End Type
`
Usage
`
result = CInt( expression )
result = CInt( string expression )
result = CInt( user defined type )
`
Parameters
`bits`
A numeric constant expression indicating the size in bits of integer desired. The values allowed are `8`, `16`, `32` or `64`.
`expression`
a numeric, string, or pointer expression to cast to a `Integer` value
`datatype`
any numeric, string, or pointer data type
`typename`
a user defined type
Return Value
An `Integer` or `Integer<bits>` containing the converted value.
Description
If `CInt` is passed a numeric `expression`, it rounds it using using the round-to-even method - i.e. it rounds to the closest integer value, choosing the closest even integer if the number is equidistant from two integers - and returns an `Integer`, or if a `bits` value is supplied, an integer type of the given size.
The function does not check for an overflow; for example, for a 32-bit `Integer` the results are undefined for values which are less than `-2` `147` `483` `648` or larger than `2` `147` `483` `647`.
If the argument is a string expression, it is converted to numeric by using `ValInt` or `ValLng`, depending on the size of the result type.
The name "CINT" is derived from 'Convert to INTeger'.
Example
`
' Using the CINT function to convert a numeric value
'Create an INTEGER variable
Dim numeric_value As Integer
'Convert a numeric value
numeric_value = CInt(300.5)
'Print the result, should return 300, because 300 is even
numeric_value = CInt(301.5)
'Print the result, should return 302, because 301 is odd
Print numeric_value
`
Dialect Differences

- In the -lang qb dialect, `CInt` will return a 16-bit integer, like in QB.

Differences from QB

- The string argument was not allowed in QB
- The `<bits>` parameter was not allowed in QB

See also

- `Cast`
- `CByte`
- `CUByte`
- `CShort`
- `CUShort`
- `CUInt`
- `CLng`
- `CULng`
- `CLngInt`
- `CULngInt`
- `CSng`
- `CDbl`
- `Integer`