Microsoft KB Archive/45686

= How to Round Up a Fraction to Its Integral Ceiling in BASIC =

Article ID: 45686

Article Last Modified on 11/21/2006

-

APPLIES TO


 * Microsoft QuickBasic Compiler for Macintosh 1.0
 * Microsoft BASIC Interpreter 1.0
 * Microsoft BASIC Interpreter 1.01 for Macintosh
 * Microsoft BASIC Interpreter 2.0
 * Microsoft BASIC Interpreter 2.1 for Macintosh
 * Microsoft BASIC Interpreter 3.0 for Macintosh
 * Microsoft QuickBasic 1.0
 * Microsoft QuickBasic 1.01
 * Microsoft QuickBasic 1.02
 * Microsoft QuickBasic 2.0
 * Microsoft QuickBasic 2.01
 * Microsoft QuickBasic 3.0
 * Microsoft QuickBasic 4.0
 * Microsoft QuickBASIC 4.0b
 * Microsoft QuickBasic 4.5 for MS-DOS
 * Microsoft BASIC Compiler 6.0b
 * Microsoft BASIC Compiler 6.0
 * Microsoft BASIC Compiler 6.0b
 * Microsoft BASIC Professional Development System 7.0
 * Microsoft BASIC Professional Development System 7.1
 * Microsoft GW-BASIC 3.2
 * Microsoft GW-BASIC 3.22
 * Microsoft GW-BASIC 3.23

-



This article was previously published under Q45686



SUMMARY
The mathematical ceiling function (which rounds up to the next higher integral value for any fraction) is not built into the BASIC language. To compute the ceiling, use the following function: DEF FNceil#(x#) = -INT(-x#)

x# = 50.0001 PRINT FNceil#(x#)   ' Prints 51 This function is equivalent to the ceil function in the C language.

This function works in the following products:


 * 1) Microsoft QuickBASIC Version 1.00 for the Macintosh
 * 2) Microsoft BASIC Compiler Version 1.00 for the Macintosh
 * 3) Microsoft BASIC Interpreter Versions 1.00, 1.01, 2.00, 2.10, and 3.00 for the Macintosh
 * 4) Microsoft QuickBASIC Compiler Versions 1.00, 1.01, 1.02, 2.00, 2.01, 3.00, 4.00, 4.00b, 4.50 for the IBM PC
 * 5) Microsoft BASIC Compiler Versions 5.35 and 5.36 for MS-DOS
 * 6) Microsoft BASIC Compiler Versions 6.00 and 6.00b and Microsoft BASIC PDS Version 7.00 for MS OS/2 and MS-DOS
 * 7) Microsoft GW-BASIC Interpreter Versions 3.20, 3.22, and 3.23 for MS-DOS



MORE INFORMATION
The code example below can be used in Microsoft QuickBASIC Versions 4.00, 4.00b, and 4.50 for MS-DOS and in Microsoft BASIC Compiler Versions 6.00 and 6.00b and Microsoft BASIC PDS Version 7.00 for MS-DOS and MS OS/2, but not in earlier versions: DECLARE FUNCTION ce& (x#)  ' Function returns long integer DECLARE FUNCTION ceil# (x#) ' Function returns double precision CLS x# = 40000005.001# y# = 50.000000000001# PRINT ceil#(x#) ' Prints 40000006 PRINT ceil#(y#) ' Prints 51 PRINT ce&(y#)   ' Prints 51 PRINT ce&(x#)   ' Prints 40000006 FUNCTION ceil# (x#) STATIC ceil# = -INT(-x#) ' Can pass values of x# in double-precision range END FUNCTION

FUNCTION ce& (x#) STATIC ce& = -INT(-x#)   ' Values of x# outside -2147483648 to 2147483647 END FUNCTION      ' will give a long-integer overflow error.

Additional query words: QuickBas BasicCom MQuickB

Keywords: KB45686

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.