0 Favourites

# How do I work with big numbers

• 12 posts
• Hi,

i am working on a clicker game, so very big numers are essential. Unfortunately it seems that Construct2 has a number max limit of 9223372036854776000. How do i manage numbers that are much more bigger. In Javascript that isn't a problem at all:

p.e. 9223372036854776000 * 119892 = 1.1058085202425928e+24.

Impossible in Construct2

Somebody has an idea? Thanks in advance

• As speed isn't an issue, you could represent numbers as strings and write code in functions to process them. Ideally you would use arrays but they probably aren't flexible enough.

• Numbers in C2 are 64bit floating point values so it can handle values like that.

The editor doesn't let you type numbers with scientific notation so maybe that's where the misunderstanding is.

• If it is 64 bit, then there are 63 bits + sign bit. Given you can't back a 10 digit value into 3 bits this puts an upper bound on the number of digits at 21, and ByteMonkey's number is 24 digits long.

• Here are the specs:

https://en.wikipedia.org/wiki/Double-pr ... int_format

1 bit for sign, 11 bits for exponent, and 52 bits for the fraction.

With that it's only 15-17 significant decimal digits, but since it also stores an exponent it can store a value up to:

1.7976931348623157 Ã— 10^308

which is plenty for a clicker game.

• If you use a whole number in an expression, C2 treats it as an integer and truncates it. If your numbers are stored in variables it's not a problem.

``````set text to 999999999999 * 999999999999
=> 2003762205206896600

num1 = 999999999999
num2 = 999999999999
set text to num1 * num2
=> 9.99999999998e+23
[/code:358333yf]

If you want to use a large number in an expression, use a float:
[code:358333yf]
set text to 999999999999.0 * 999999999999.0
=> 9.99999999998e+23
[/code:358333yf]``````
• Hi, For that same example of an incremental game that is asked above, how i show the score in just a few digits and an exponent?

The exponent counts as the same number and is indivisible or it counts as text or a string?

How i show all the numbers as numbers with exponents, even the smaller ones, like for example to show on a text object: 1*10^6 or 1*10^7 ?

Is it a simple way to display this without using Rex's CSV tool or any other plugin?

Thanks

Develop games in your browser. Powerful, performant & highly capable.

Construct 3 users don't see these ads
• Why you doesn't round them and use K M B T TT etc?

As far as i remember, many games do this for sake of legibility.

• If you have a number in a variable n, you can do this:

e= int(log10(n))

set text to int(1000*n/10^e)/1000&"x10^"&e

• I've seen a few games just use their own system, bazillion, gazillion, omgerzillion.

• I've seen a few games just use their own system, bazillion, gazillion, omgerzillion.

Yep, thats what im talkin about.

Even Diablo 3 rounds it (but the dmg/HP is still at T hehehe)

• Thanks both of you Cassianno , R0J0hound, and newt for your answers.

I think i'm going to follow R0J0hound advice on the e= int(log10(n)) . I was asking for a simple way of depicting this, and this looks good. I still have to test it on my project, but looks good.

• 12 posts