# N00b question about Infinity and Float

**URL:** <https://www.ruby-forum.com/t/n00b-question-about-infinity-and-float/156627>\
**Category:** Ruby\
**Created:** [December 31, 2008, 4:13am UTC](https://www.ruby-forum.com/t/n00b-question-about-infinity-and-float/156627 "2008-12-31T04:13:29Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kedarmhaswade](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/5fc32e/32.png) [@kedarmhaswade](https://www.ruby-forum.com/u/kedarmhaswade)\
**Post date:** [December 31, 2008, 4:13am UTC](https://www.ruby-forum.com/t/n00b-question-about-infinity-and-float/156627/1 "2008-12-31T04:13:29Z")

</div>

Folks,

A new user. Please be kind. I have checked  
[Infinity - Ruby - Ruby-Forum](http://www.ruby-forum.com/topic/74141#new), but could not find what I was  
looking for.

See following irb session:

start

irb(main):004:0\* google=10**100  
=\>  
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  
irb(main):005:0\> googleplex=10**google  
(irb):5: warning: in a\*\*b, b may be too big  
=\> Infinity  
irb(main):006:0\> google.class  
=\> Bignum  
irb(main):007:0\> googleplex.class  
=\> Float

end

This was nice! But, I expected googleplex.class to be BigNum. Is  
Infinity a Float?

Why?

Thanks in advance,  
Kedar

---

<div class="post-metadata">

**Author:** ![kedarmhaswade](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/5fc32e/32.png) [@kedarmhaswade](https://www.ruby-forum.com/u/kedarmhaswade)\
**Post date:** [December 31, 2008, 5:25am UTC](https://www.ruby-forum.com/t/n00b-question-about-infinity-and-float/156627/2 "2008-12-31T05:25:33Z")

</div>

Hi,

Am Mittwoch, 31. Dez 2008, 12:12:55 +0900 schrieb Kedar M.:

> This was nice! But, I expected googleplex.class to be BigNum. Is  
> Infinity a Float?

I like this kind of questions. A weird example, though; I would  
prefer an exception. BigNum \* BigNum may not result in a Float.  
Hit me with your refutations.

Bertram

---

<div class="post-metadata">

**Author:** ![kedarmhaswade](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/5fc32e/32.png) [@kedarmhaswade](https://www.ruby-forum.com/u/kedarmhaswade)\
**Post date:** [December 31, 2008, 8:23am UTC](https://www.ruby-forum.com/t/n00b-question-about-infinity-and-float/156627/3 "2008-12-31T08:23:52Z")

</div>

Bertram S. wrote:

> > =\> Bignum  
> > Bertram

Hmmm … “google” is a Bignum (multi-precision integer). “10” is an  
Integer. So you are raising an Integer to a Bignum power. So it boils  
down to how Ruby raises an Integer to a Bignum power. Now if this were  
an “ideal machine”, it would perform some kind of exact, and very long  
running, exponentiation routine. Clearly it didn’t … it looked at the  
numbers and said, “Whoa!” 🙂

Yeah … it should have returned an exception, not a Float. But there  
are plus and minus Infinity in the IEEE floating point number spec, so I  
guess it makes sense to return that. But in theory, given enough memory  
for the digits and enough compute time, it could return a Bignum. An  
estimate of the amount of memory required is left as an exercise for the  
student. 🙂

Incidentally, the correct spelling is “googol”, not to be confused with  
the search engine or the Russian author. 🙂

–  
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC§, WOM

I’ve never met a happy clam. In fact, most of them were pretty steamed.
