BUG: Binary QuickBasic Default Compiled Exponent (^) Bad (35516)



The information in this article applies to:

  • Microsoft QuickBASIC Compiler for the Apple Macintosh 1.0

This article was previously published under Q35516

SYMPTOMS

In programs compiled with Microsoft QuickBasic (b) (binary math) Version 1.00, a constant that is the object of the exponential operator (^) does not assume double precision when assigned to a double-precision variable. As a result, the exponential calculation is only accurate to single precision.

To work around the problem, you can append an explicit type symbol of &, #, or ! onto the exponential constant, as shown below, or compile with Microsoft QuickBasic (d) (decimal math). The problem does not exist in the interpreter or in the Microsoft Basic Compiler Version 1.00 for the Macintosh .

Microsoft has confirmed this to be a bug in the Microsoft QuickBasic Compiler (b) Version 1.00 for the Macintosh . We are researching this problem and will post new information as it becomes available.

MORE INFORMATION

The following program correctly returns 1.52399025D-20 in the interpreter but gives 1.52399094076451D-20 when compiled, which is only accurate to single precision. However, if an exponent of 2&, 2#, or 2! is used, the compiled program correctly returns 1.52399025D-20, which is accurate to double precision.
DEFDBL a-z
i = .00000000012345#
PRINT i^2
REM  As a workaround, you may use PRINT i^2#
				

Modification Type:MinorLast Reviewed:1/8/2003
Keywords:kbbug KB35516