BUG: Illegal function call / Division By Zero Errors
ID: Q94778
|
The information in this article applies to:
-
Microsoft Visual Basic Standard and Professional Editions for Windows, versions 2.0, 3.0
-
Microsoft Visual Basic programming system for Windows, version 1.0
-
Microsoft Visual Basic Standard and Professional Editions for MS-DOS, version 1.0
-
Microsoft Basic Professional Development System for MS-DOS, versions 7.0, 7.1
SYMPTOMS
Certain complex numeric expressions may incorrectly cause "Illegal
function call" or "Division by zero" errors when run in the interpreter
environment of the above mentioned Basic products. This problem only
happens on computers that have a math coprocessor.
These errors, however, do not occur with programs compiled using the
BC.EXE compiler included with Microsoft Basic Professional Development
System for MS-DOS, version 7.1 and the Standard and Professional
Editions of Microsoft Visual Basic for MS-DOS, version 1.0
STATUS
Microsoft has confirmed this to be a bug with the Microsoft products listed
at the beginning of this article. We are researching this problem and will
post new information here in the Microsoft Knowledge Base as it becomes
available.
MORE INFORMATION
To work around this problem, do one of the following:
- Break the complex equation into smaller parts that are evaluated
separately.
- Turn off use of the coprocessor with SET NO87=x at the DOS
prompt (PDS and Visual Basic for MS-DOS only).
- Compile using the alternate math (/FPa) option (PDS and
the Professional Version of Visual Basic for MS-DOS only).
The following code reproduces the "Illegal Function Call" error on a
computer that has a coprocessor:
test = 1 + (1 + 1 * (1 * (1 + 1 ^ 1)))
The following code reproduces the "Division by zero" error on a computer
that has coprocessor:
test = 1 + (1 - 1 * (1 + 1 / 1 ^ 1))
These are not the only expressions that cause the problem.
Additional query words:
buglist1.00 buglist2.00 buglist7.10 buglist3.00 2.00 3.00 7.10
Keywords :
Version :
Platform :
Issue type :