Bigger than Google: formatting very big numbers in Grids/Browse


An Exabyte is 10^18 bytes. (Exa, Peta, Tera, Giga, Mega) A Googlebyte is 10^100 bytes (1 followed by 100 zeroes). My 8 year old daughter knows that a GoolePlex is a 1 followed by a google zeroes.


 


The code below generates very big numbers by generating powers of 2 and displays them in both a BROWSE and a grid.


For example 2^ 100, or about 10^30 is shown as


 


      1,267,650,600,228,230,000,000,000,000,000


 


The 😛 option of the BROWSE FIELDS clause works as the InputMask to put in the comma separators  Using such a  mask on large numbers makes them easier to read, but scientific notation is much better for very large numbers.


Observe that each number ends in either a 2,4 6 or 8, and cannot end in 0 because a power of 2 is not divisible by 5 (or 10). After about 10^16 the numbers do end in 0, indicating that the numeric precision is just under 16 decimal digits (a topic for another blog)


 


CREATE CURSOR temp (name c(10),pow10 c(10),value b)


FOR i = 1 TO 350


      INSERT INTO temp VALUES (“2^”+TRANSFORM(i),”10^”+TRANSFORM(LOG10(2^i)),2^i)


ENDFOR


BROWSE FIELDS name,pow10,value:p=”999,999,999,999,999,999,999,999,999,999,999,999″ NOWAIT


PUBLIC x as form


SKIP 10    && go back 10 records


x=CREATEOBJECT(“form”)


x.visible=1


x.addobject(“gr”,”grid”)


x.gr.visible=1


x.gr.width=x.width


x.gr.column3.InputMask=”999,999,999,999,999,999,999,999,999,999,999,999″


 


 


 


73905

Comments (2)

  1. mabster says:

    Actually, you’re talking about a ‘googol’. ‘Google’ is a search engine, not a number.

  2. Paul Kinlan says:

    isn’t it a googol? a google is the sound a baby makes when they are well….. being like a baby 🙂 I suppose that is the best way to describe the sound of the word 🙂

    If it isn’t I look quite silly 🙂

    Paul Kinlan