BBS: Inland Empire Archive Date: 10-29-92 (12:15) Number: 320 From: TONY ELLIOTT Refer#: NONE To: WARREN SCHREY Recvd: NO Subj: Re: hm. Conf: (2) Quik_Bas
Warren, WS> Why does this work? WS> A#=100 WS> B#=533 WS> C#=8 WS> D&=A#*B#*C# WS> where this WS> --clipit-- WS> D&=100*533*8 WS> <Overflow Error> WS> doesn't? It seems that QB won't let me insert anything beyond the WS> 32767 or -32768 limits using direct numbers as in my second clip... WS> Is this a bug, an undocumented feature, or just another of those WS> annoyances? :-) Under most conditions, Basic assumes that literal, whole numbers are integers -unless- a variable of greater precision appears to the left. For example: D& = A# * 533 * 8 -will- work. Basic evaluates expressions using the algebraic order of operations. In the above example, it encountered A# and thus considered any literal values (such as 533 and 8) as double precision as well. This also works: D& = 100& * 533& * 8& D& = 100& * 533 * 8 '533 and 8 considered to be long ints 'because 100 is a long int. Putting overrides on literals eliminates the guesswork in Basic's automatic conversion of literals. Believe it or not, this is documented .. just not in a great deal of depth. Ethan Winer's book "PC Magazine's BASIC Techniques and Utilities" describes this process (as well as many others). A highly recommended book. Tony ... Go straight to the docs. Do not pass GO. Do not collect $200! --- Blue Wave/Max v2.10 [NR] * Origin: Oakland BBS - McDonough, GA - (404) 954-0071 (1:133/706.0)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET