CLNG
Jump to navigation
Jump to search
The CLNG function rounds decimal point numbers to the nearest LONG integer value with one exception. If the fraction of the decimal point number is exactly .5, then it is always rounded to the nearest even long integer value.
Syntax
- value& = CLNG(expression)
Parameters
- expression is any type of literal or variable numerical value or mathematical calculation.
Description
- Note
- As given values may be positive or negative and the rounding directions are opposite in each case, we don't speak of rounding up or down. That's elementary school terminology when kids don't know of negative numbers yet.
- Instead we speak of rounding towards zero or rounding towards infinity, which exactly describes the rounding direction for both, positive and negative numbers.
- Fractions greater than .5 are rounded to the next integer number towards infinity
- Fractions lower than .5 are rounded to the next integer number towards zero.
- Fractions exactly .5 are rounded to the nearest even integer number.
- Use this function if the decimal point number exceeds the INTEGER range of -32768 to 32767. However, you may generally use it, as it handles normal INTEGERs as well.
- This function is automatically applied (in the background) to decimal point values, which are given to SUBs or FUNCTIONs requiring LONGs as arguments.
Availability
Examples
- Example
- Shows how CLNG rounds values depending on the current fraction.
WIDTH 50, 35 FOR f = -3.5 TO 3.5 IF f < 0 THEN down$ = "towards infinity" up$ = "towards zero" ELSE down$ = "towards zero" up$ = "towards infinity" END IF PRINT f - 0.01, CLNG(f - 0.01), down$ PRINT f, CLNG(f), "to nearest even" PRINT f + 0.01, CLNG(f + 0.01), up$ PRINT NEXT f |
See also