PRB: Can't Set Certain DataTypes to Minimum Documented Value

Last reviewed: May 22, 1996
Article ID: Q143422

The information in this article applies to:

- Standard, Professional, and Enterprise Editions of Microsoft Visual

  Basic, 16-bit and 32-bit, for Windows, version 4.0
- Standard and Professional Editions of Microsoft Visual Basic
  programming system for Windows, version 3.0

SYMPTOMS

Setting a currency, long, integer, or double to its minimum documented value is not valid. If you hard code the value, then the error message: "INVALID Number" from Visual Basic 3, and "Expected: expression" from Visual Basic 4 displays. However, if you try set a variable of any of these types at run-time, an Overflow Error displays.

CAUSE

The reason for this behavior is that Microsoft Visual Basic reads all negative numbers first as their absolute value, and then applies a unary negative. Because Microsoft Visual Basic puts the absolute value into a placeholder of the type identified by the type suffix, it reports the error when the positive limit is exceeded.

RESOLUTION

Negative values that are greater in absolute value than the maximum positive value are invalid.

STATUS

This behavior is by design.

MORE INFORMATION

INTEGER: -32768% LONG: -2,147,483,648& CURRENCY: -922337203685477.5808@ DOUBLE: -1.79769313486232E308#


KBCategory: kbprg kbprb
KBSubcategory: PrgOther
Additional reference words: 3.00 4.00 vb4win vb4all


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 22, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.