# Lesson 8. Big numbers

After reading lesson 8, you’ll be able to

- Save your zero key by specifying an exponent
- Use Go’s
`big`package for really big numbers - Use big constants and literal values

Computer programming is full of trade-offs. Floating-point types can store numbers of any size, but they lack precision and accuracy at times. Integers are accurate but have a limited range. What if you need a really big, accurate number? This lesson explores two alternatives to the native `float64` and `int` types.

##### Consider this

CPUs are optimized for integer and floating-point math, but other numeric representations are possible. When you need to go big, Go has you covered.

What are some situations where integers are too small, floating-point too imprecise, or another numeric type would be more suitable?

If you haven’t realized it yet, 64-bit integers are mind-bogglingly big—much bigger than their 32-bit counterparts.

For some perspective, the nearest star, Alpha Centauri, is 41.3 trillion kilometers away. A trillion: that’s one followed by 12 zeros, or 10^{12}. Rather than painstakingly typing every zero, you can write such numbers in Go with an exponent, like so:

An `int32` or `uint32` can’t contain such a large number, but an `int64` doesn’t break a sweat. Now you can go about your business, perhaps calculating how many days it would take to travel to Alpha Centauri, a task tackled in the following listing.