• Subject: Re: Overflow handling in lua
• From: Peng Zhicheng <pengzhicheng1986@...>
• Date: Sun, 08 Jul 2012 11:26:32 +0800

```于 2012-7-8 10:58, meino.cramer@gmx.de 写道:
```
```Javier Guerra Giraldez <javier@guerrag.com> [12-07-08 04:48]:
```
```On Sat, Jul 7, 2012 at 10:07 AM, Eike Decker <zet23t@googlemail.com> wrote:
```
```I think it would stop icrementing at 2^48 or somewhere in that range..
```
```more like 2^53

--
Javier

```
```That is :

a=0
while a==a do
a=a+1
end

will run forever and 'a' will stay at its
maximum without changing then anymore...????
Or does it abort with an error? Or what else?

I am confused....

Best regards
mcc

```
```
yes, when a is incresed to 2^53, it won't change then on.

but this is not saying that 2^53 is the maximum number.
it is just the maximum value that has a 0 exponent for
double precision floating point numbers according to IEEE 754.

in other words, (2^53+1) == (2^53). but (2^53+2) > (2^53)

for details, you may refer to IEEE 754 standard or wikipedia.

one more word,
the floating point numbers have a defined INFINITIVE value,
so there is not the similar `overflow' concept as for integers.

if a is `+1.#INF', then the result of `a+b' or `a-b' is defined to
be "+1.#INF" where b is a finitive number.

```