# Calculating Nice Numbers

One of the biggest issues you will run into balancing your systems, especially if you use automated and excel driven calculations, is that the numbers can be quite ugly. Would you rather your players buying something for $63,829.29, or would you rather them buying something for $65,000.

If you like to see a real world example of this problem, check out the article on Value of Items. Or, for a more in depth look, try playing around with different Growth Rates yourself.

To combat this I use a very simple two-factor method of rounding the final results.

  1. The log10 factor, aka Significance
  2. The non-zero factor, aka RoundTo

# Significance

One of the issues, at least that I have found, is that the bigger the numbers get, the less precision you really need in the final result, at least from a player's perspective. People have a really hard time judging the difference between numbers with 4, 5, or even 6 digits.

Which would you rather compare at a glance?


Or would you rather compare


And for most games.... there isn't a meaningful, mechanical difference between the two, but there is absolutely a difference in feeling.

So once of the things that I decide is the amount of precision that is really required from a meaningful, mechanical perspective, and everything else gets tossed away. To do this I use the log10 of the generated number.

# RoundTo

This is the easier, more familiar of the two. This controls how I want the non-zero number number to be round. Sometimes I don't want it rounded, and other times want it rounded to the nearest power of 2; but most often it's to the nearest power of 5.

# Try It Yourself

With both of these combined, you can get very pleasing results for almost any automatically generated number in your system.

Here is a little toy that you can play with to see the results.

Starting ValuesRounded Values
20 20
114 115
352 350
553 555
798 800
1067 1050
1212 1200
1525 1550
1861 1850
2415 2400
4375 4400
54078 54000
63242 63000
83144 83000
104769 105000
128003 130000
152732 155000
178888 180000
250009 250000
328636 330000
414124 415000
707102 705000
1048091 1050000