Thank you VERY much, very nice explanation! On Fri, 2010-11-05 at 15:00 -0400, nando wrote: > Here is a visualization (view this email with a fixed width font): > Regarding your line: DIM iArea AS Single = 1.7014118E+38 > A Single only has about 8 digits of precision so, the number is really this: > 170,141,180,000,000,000,000,000,000,000,000,000,000.0 > 1.0 + > ===================================================== > 170,141,180,000,000,000,000,000,000,000,000,000,000.0 = > ^^^^^^^^^^ > SINGLE only has room for about 8 digits of precision not all 38. > So, adding 1 means nothing. > -Fernando > > ---------- Original Message ----------- > From: Doriano Blengino <doriano.bleng...@fastwebnet.it> > To: mailing list for gambas users <gambas-user@lists.sourceforge.net> > Sent: Wed, 03 Nov 2010 10:26:23 +0100 > Subject: Re: [Gambas-user] Variable overflow questions > > > user ha scritto: > > > Hi i check the overflow of variables and there is something i dont > > > understand. > > > > > > My system is > > > > > > u...@ubuntu-desktop:~$ cat /etc/*release* > > > DISTRIB_ID=Ubuntu > > > DISTRIB_RELEASE=10.04 > > > DISTRIB_CODENAME=lucid > > > DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS" > > > > > > Linux ubuntu-desktop 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 > > > 19:52:42 UTC 2010 x86_64 GNU/Linux > > > > > > > > > > > > I have this small code > > > ----------------------------------- > > > ' Gambas class file > > > PUBLIC SUB Form_Open() > > > > > > DIM bVar AS Boolean = TRUE > > > DIM iNum AS Byte = 255 > > > DIM iA AS Short = 32767 > > > DIM iRoads AS Integer = 2147483647 > > > DIM iBig AS Long = 9223372036854775807 > > > DIM iArea AS Single = 1.7014118E+38 > > > DIM fPi AS Float = 8.98846567431105E+307 > > > > > > bVar += 1 > > > iNum += 1 > > > iA += 1 > > > iRoads += 1 > > > iBig += 1 > > > iArea += 1 > > > fPi += 1 > > > > > > PRINT bVar > > > PRINT iNum > > > PRINT iA > > > PRINT iRoads > > > PRINT iBig > > > PRINT iArea > > > PRINT fPi > > > > > > END > > > ----------------------------------- > > > > > > And i get the following result > > > > > > False > > > 0 > > > -32768 > > > -2147483648 > > > -9223372036854775808 > > > 1.701411834605E+38 > > > 8.988465674311E+307 > > > > > > > > > My question is why the Single and Float do not overflow? > > > > > Because they should not overflow, I think. "Real" numbers (in the IT > > sense: "float" if you prefer ) are not discrete numbers, they have a > > limited precision; a single bit pattern in a float corresponds to > > infinite numbers in the real world. When you add a very small quantity > > to a float (and "1", compared to 1E+38, is very small), you simply tell > > it to store a different number, which has the same bit representation. > > If a float would overflow, it would cease its main reason to exist: in > > most situations you *do* want it to behave so. You could add a bigger > > number to make it overflow: you should add a number big enough to fall > > in the precision bits of the mantissa. A normal float has perhaps 6/7 > > digits of precision; to choose a comparable a number, you should choose > > something like 1E+31 (this "1" falls in the digits of precision of > > 1E+38). But! Even in that case, the number should not overflow, but > > raise an error (overflow error). This last thing depends on > > implementation of the floating point by the host computer. > > > > Regards, > > Doriano > > > > ------------------------------------------------------------------------------ > > Achieve Improved Network Security with IP and DNS Reputation. > > Defend against bad network traffic, including botnets, malware, > > phishing sites, and compromised hosts - saving your company time, > > money, and embarrassment. Learn More! > > http://p.sf.net/sfu/hpdev2dev-nov > > _______________________________________________ > > Gambas-user mailing list > > Gambas-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/gambas-user > ------- End of Original Message ------- > > > ------------------------------------------------------------------------------ > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > David G. Thomson, author of the best-selling book "Blueprint to a > Billion" shares his insights and actions to help propel your > business during the next growth cycle. Listen Now! > http://p.sf.net/sfu/SAP-dev2dev > _______________________________________________ > Gambas-user mailing list > Gambas-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user
------------------------------------------------------------------------------ The Next 800 Companies to Lead America's Growth: New Video Whitepaper David G. Thomson, author of the best-selling book "Blueprint to a Billion" shares his insights and actions to help propel your business during the next growth cycle. Listen Now! http://p.sf.net/sfu/SAP-dev2dev _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user