Assuming the results of a percentile roll ranges from 1-100, why would the results of a "00" and "0" roll be read as a "100"?

In any other context outside of a percentile roll, the "0" on a d10 is interpreted as a "10". Also, the "00" is read as a "0" in every other roll of the d100. But specifically for "00" and "0", it results in a "100".

This means that the possible results of a "00" roll with any roll of the d10 is 1, 2, 3, 4, 5, 6, 7, 8, 9, and 100.

This raises an additional question of why a "0" on a d10 in the context of a percentile roll is treated as a "0".

Is this simply to make the reading of the percentile roll easier, or simply to make it so a 100 wouldn't require an unaesthetic "90" and a "0" instead of the more visually-appealing "00" and "0"?

  • 19
    \$\begingroup\$ Some of us are old enough (shock!) that we don't use a special set of percentile dice, we just use two d10s, each numbered 0 through 9. \$\endgroup\$
    – Novak
    Commented Jan 19, 2020 at 7:38
  • 21
    \$\begingroup\$ 'why would the results of a "00" and "0" roll be read as a "100"?' — how would you read this result, if not as "100"? \$\endgroup\$
    – enkryptor
    Commented Jan 19, 2020 at 11:02
  • 5
    \$\begingroup\$ @Novak and some of us are old enough that we didn't have d10s ... but I'm not gonna tell anyone to get off my lawn 8^D \$\endgroup\$ Commented Jan 19, 2020 at 17:37
  • 1
    \$\begingroup\$ Related: Is there a name for this 20 sided die with two 1s, two 2s, etc? \$\endgroup\$ Commented Jan 19, 2020 at 22:18
  • \$\begingroup\$ Crossrelated: What counts as the lowest value on a percentile die? \$\endgroup\$
    – Trish
    Commented Aug 29, 2021 at 9:33

8 Answers 8


In common practice a d100 is effectively a 0-99 roll, with the stipulation that 0 be treated as 100

The game needs a way to roll 1 to 100 with equal chances, and no chance of getting zero.

Let's start by just looking at how we are set up to roll the results from 1 to 99, and then we'll get to the special case of getting 100.

In order to have a practical way to get the numbers 1-99, we roll a double-digit and a single-digit d10 together, and add them arithmetically. We add the two numbers we literally see, so a "90"and a "3" is 93; a "00" and a "3" is just 3; a "90" and a "0" is just 90, etc.

Two problems initially: we have no way to get 100, and we have the possibility of getting a total zero by rolling "00" and "0".

Solution to both: count the "00" and "0" combo as 100, instead of zero. With this simple adjustment, we have exactly what we want: a 1-in-100 chance of getting all possible results from 1 to 100, and never getting a final zero.

Admittedly, it is a matter of convention

Understandably, you normally treat a "0" on a regular d10 as "10", and you could continue to do so even when using it in d100, such that if you rolled "80" and "0" and treat the "0" as 10, then you get 90. But game communities tend to converge on one common practice or another, and the one outlined above is the one that has taken hold. But technically, you could use either method, as long as everyone at the table understands and agrees.

A final historical note

In the old days, few players had two d10s to enable rolling a d100 all in one go (maybe because dice sets were more expensive relative to income back in the day). We'd roll our single d10 for the tens-place, and then pick it up and roll it again for the ones-place. This made the zero-substitution rule very exciting and suspenseful! If my initial one-die roll was zero I'd be thinking, "Dang, I probably will end up with just a 1-9, but I've got a shot at a 100!". And everyone around the table would be thinking the same thing, and would watch with tense anticipation what the second roll was going to be.

This dynamic added some fun to the game (that you don't "feel" when rolling two d10s), and might help explain why the method "stuck."

  • 22
    \$\begingroup\$ I'd also add that in the old old days, that d10 was probably a d20 with one set of 0-9 numbers marked with crayon or ink to indicate "+10". \$\endgroup\$ Commented Jan 19, 2020 at 18:08
  • 6
    \$\begingroup\$ But nowadays all the fun of the slow expectation, the suspense, was trampled on for the expedited speed of faster gameplay and faster gratification. Shock, people are rolling both the hit and damage dice together! And out-of-turn in some very organized cases! I demand my half-hour rounds back. \$\endgroup\$ Commented Jan 20, 2020 at 12:17

That method of rolling percentile dice actually pre-dates D&D.

Reading percentile dice in this manner pre-dates D&D, and has been used consistently in the rules throughout editions of the game.

Percentile dice date back to at least 1963, when they were used in wargames by the US Naval War College to simulate percentage chances using a 20-sided die marked 0-9 twice, and rolling that two times to generate two digits.

These dice were adopted by wargaming hobbyists around 1971, with an early advertisement describing them as able to "throw numbers 1-100".

Gygax used them in Original D&D (1974) as actual twenty-sided dice, read 1-20. It was common to color half the numbers with a crayon, presumably reading one 0 as 10 and the other as 20. They were also used in their original function as percentile dice, as in the Monsters & Treasure rulebook where magic item charts clearly place a result of 00 after 99 (e.g. Shield +3 on a roll of 98-00), i.e. 00 is used as if it represents 100 rather than 0.

The idea of reading a die as 1-10 wasn't even introduced until Greyhawk (1975). Spindle-shaped d10s were even newer—the AD&D 1e Dungeon Masters Guide (1979), p. 10, expects players to use the d20 as a d10, and describes a new non-platonic actual d10 marked 0-9. The modern d10 actually marked 1-10, and the d10 marked 10-90 for percentile use, are much newer inventions.

Consistent use of 00 = 100 throughout D&D

AD&D 1st edition Players Handbook (1978), p.9, under "Strength", explicitly states that a roll of 00 is intended to mean 100:

Furthermore, fighters with an 18 strength are entitled to roll percentile dice in order to generate a random number between 01 and 00 (100) to determine exceptional strength ...

The AD&D 2nd edition revised Player's Handbook (1995), released after Gygax left the company, actually calls a roll of 00 "100" in random treasure/monster charts to avoid confusing new players. In the chapter "The Real Basics", p. 11:

When the rules say to roll "percentile dice" or "d100", you need to generate a random number from 1 to 100. One way to do this is to roll two 10-sided dice of different colors. Before you roll, designate one die as the tens place and other as the ones place. Rolling them together enables you to generate a number from 1 to 100 (a result of "0" on both dice is read as "00" or "100").

The D&D 3.5 Player's Handbook, p. 5, gives a similar definition, this time accounting for the existence of newer ten-sided dice marked 00-90 for specific use as percentile dice in D&D and percentile-based RPGs:

Two 0s represents 100. Some percentile show the tens digit in tens (00, 10, 20, etc.) and the ones digit in ones (0, 1, 2, etc.). In this case, a roll of 70 and 1 is 71, and a 00 and 0 is 100.

The D&D 4e Player's Handbook, p.8, accounts for dice actually marked 1-10 (despite the artwork showing a die marked 0-9):

You can use d10s to roll percentages if you ever need to. Roll 1d10 for the "tens" and 1d10 for the "ones" to generate a number between 1 and 100. Two 10s is 100, but otherwise a 10 on the tens die counts as a 0–so a 10 on the tens die and a 7 on the ones die is a result of 7 (not 107!).

And the D&D 5e Player's Handbook, p.6:

... Two 0s represent 100. Some ten-sided dice are numbered in tens (00, 10, 20, and so on), making it easier to distinguish the tens digit from the ones digit. In this case, a roll of 70 and 1 is 71, and 00 and 0 is 100.


We (1) had no 10-sided dice, (2) needed a three digit result ...

Hi, Original D&D player here. While Quadratic Wizard is mostly correct, the 00 = 100 was in the Original D&D game (1974, TSR, three little brown books, unless you go back as QW did to the Naval War College); the game's tables show that 00 was highest percentile roll.

About the dice

The original 20 sided dice, the icosahedron, arrived with two of each number opposed to one another. Here are my oldest surviving dice (yes, the pointed d4's were original, but those are gone thanks to a few boxes being lost in a Navy move) and the yellow set of oddly shaped dice didn't have a d10 - d10's weren't yet common.

group of differently-shaped dice

Just the d20s that were also used as d10s.

close-up featuring the two d20s, with the 0s on the top

And here is a close up of the d20s with the other 0 showing on each.

close-up on the d20s

We used 20 sided dice as our ten sided dice; 0 was our default for 10 as a result: instead of being really pure geeks and adding one to 0-9 to get 1-10, we simply added a 1 to the tens place on a roll of zero and got 0 = 10 on our erzatz ten sided dice.

When rolling two icosahedrons, you had 2 chances in 20 for each die to come up with any number from 0-9. You picked one d20 as the high and one as the low (in the above pair the blue was high and the yellow was low when I rolled them), or, if you had only one d20 like us cheap/poor high school kids did in 1975, you rolled twice with the first one being the tens digit and the last on being the ones digit. A 0 and then a 4 = 4; a 7 and then a 6 = 76.

... and (3) The game tables showed that 00 was highest percentile roll

None of the tables in D&D, Original (1974), had a lower value than 01. We could not create "100" with a two die roll unless we made 00 be one greater than 99. So we did, and so had the game's designers. It was obvious that 00 was the highest number, since that is how the tables were set up in the Original Dungeons and Dragons game.

Here's an example table entry (edited for brevity) from Monsters and Treasure (D&D, 1974, TSR) from page 29.

Extraordinary Ability Table (for magic swords)

Die Roll Ability
01-10 Clairaudience
11-20 Clairvoyance
21-82 skip a bit, Brother
83-87 Flying
88-92 Healing (1 point / 6 turns or 6 points /day)
93-97 1-4 Times Normal Strength for 1-10 turns ...
98-99 Take Two Rolls Ignoring Scores Over 97
00 Take Three Rolls, Ignoring Scores over 97

That's why: the book already showed you that 00 was greater than 99.
It did not take a great leap of logic to grasp that 00 = 100.

When the change arrived for many gamers - 10 sided dice began to show up a lot at game store - some people began to use two d10s to roll percentiles, even though some of old school sorts (like me) never saw the need. Then, when d20's started coming with 11-20 already marked on the dice, we began to see the utility of using the 2d10 for percentile rolls.

As Quadratic Wizard pointed out, they did a better job of explaining this in the AD&D books, but the practice had come with the publication of the original game.

1 FWIW, I don't recall ever seeing a d10 before 1980, but that may be a result of where I lived more than if they were available or not. We didn't have the internet back then.

  • \$\begingroup\$ What do you do if 10 – 20 comes up on the d20? Roll again? Why do your d20 start counting at zero? \$\endgroup\$
    – Michael
    Commented Jan 20, 2020 at 10:13
  • 2
    \$\begingroup\$ @Michael There are no tens on a d20. Ignore the 1 in 11, or the 1 in 13. Look at the d20's in the pictures. The digits are colored differently so that when using it as a d20 you know which is high and which is low. For d20, you call high or low color before the roll, or as a convention at the table. \$\endgroup\$ Commented Jan 20, 2020 at 13:26

If you forgive me getting all mathematical, it's to get percentages right with "x or less" success.

Since they are called "percentage dice", we intuitively assume that if we have to "roll a twenty five or less" that should correspond to a 25 percent chance of success. But that is not true if zero counts as zero - 26 of the outcomes are less than or equal to 25, so it's a 26% chance of success. We could work round that by saying that 25 counts as failure, but that just seems wrong to everyone.

This is especially true of "roll a 99 or less" which we expect to have a 1% chance of failure, but which will always happen if 00 counts as zero.

So to keep things how we expect them, we make 00 count is 100. I doubt it was thought through in that detail, but it does work out.

  • 1
    \$\begingroup\$ While I don't have much experience with them, I thought that some of these systems do treat "000" as 0, but their rules for rolling are 'you have to roll under the target percent to succeed'; rolling a 1 on a 1% chance would fail, but 0 would pass, and on a 100% chance, all possible results are below 100. \$\endgroup\$
    – CTWind
    Commented Jan 19, 2020 at 21:23
  • 1
    \$\begingroup\$ I'm surprised this answer isn't rated higher. You have to have a way to roll a 100 on your percentile dice, or an action with a 99% chance of failure can never succeed. \$\endgroup\$ Commented Jan 20, 2020 at 0:35
  • 2
    \$\begingroup\$ I am going to guess that the War College folks did think through that (see Quadritic Wizard's answer) ... \$\endgroup\$ Commented Jan 20, 2020 at 13:58
  • \$\begingroup\$ I agree with @noandpickles that this should be rated higher than it is -- adding zero does shift the distribution. That said, you could just change the success check to be "greater or equal" so that the 99% chance of failure means you have the expected 1 in 100 chance (must roll 99). That might even be consistent with some specific game mechanics, but it would be very inconsistent with how the dice work in general - NO other dice are functionally "base zero" - a d20 doesn't go 0..19, for example. Honestly that consistency is, to me, the simple logical answer (ignoring the historical evolution) \$\endgroup\$
    – A C
    Commented Jan 21, 2020 at 17:39
  • \$\begingroup\$ @noandpickles Actually, by the definition of "percentile" I was taught decades ago, the lowest is 0th (you are above 0%) and the highest 99th (you are above 99%), so you have to match or exceed the number matching your probability of failure if you're using 00-99 instead of 01-(1)00. A 99, being the highest 00-99 possible, beats the 99% chance of failure. It's just a matter of using "roll >= failure%" instead of "roll > failure%" as the rule when using 0-based counting. [As an IT guy, I'm used to having to do this kind of math when using 0-based array indices, for instance.] \$\endgroup\$ Commented Jan 21, 2020 at 18:36

In support of other answers:

In any other context outside of a percentile roll...

Note that in traditional wargaming, pre-dating D&D (like, 1960's), such dice were only used for percentile rolls. Specifically, pairs of icosahedrons (d20's) with single digits on each face (0-9) were acquired from scientific-tool manufacturers and used for the purpose of switching games from awkward d6-bases to d%-bases, by which one could directly implement real-world statistical reports (this is even before d4's, d8's, d12's were used, too).

Is this simply to make the reading of the percentile roll easier...?

In short: Yes. Since at the outset the whole point was to be reading a pair of digits in every case, the most straightforward reading was taken, and no one would think to create an extra operation by reading the tens-digit differently from the ones-digit, and adding an extra addition operation. (The only exception being how to identify "100", for which the obvious "00" was used.)

You might want to watch this excellent video by Jon Peterson on the history, manufacture, and how to identify different brands of dice from the 1970's. Note that every manufacturer was only making d20's with 0-9 digits twice for this purpose, until TSR did something different in 1980.


The 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 tells you how many ones you got and the 00, 10, 20, 30, 40, 50, 60, 70, 80, 90 tells you how many tens you got. So, of course, and as you already know, a roll of 1 and 30 would be 31. A roll of 5 and 70 would be 75. Then we get 8 and 00. That would be 08, or 8.

Bringing us to your delightful question. A roll of 00 and 0. It leads us to a very, very little backstory that might be interesting to those of you who didn't live through it.

In the old days, Dungeons and Dragons was a very simple game played by kids. I myself played it at 11 and 12 years old in 1979 and 1980. (Yes, I'm old - now in my mid 50's.)

Then Gary Gygax, D&D's creator, began transforming "Basic Dungeons and Dragons," now called edition 1, into an adult game called "Advanced Dungeons and Dragons," or "D&D edition 2." Advanced Dungeons and Dragons was wildly popular throughout the 1980's. I played it like a fanatic with many, many friends and then transitioned to edition 3.5, and lastly, edition 5.

Anyway, one of the decisions they made when creating Advanced Dungeons and Dragons - as was noted in a previous but with less detail - was this:

Rolls from 1 to 100 are more interesting than rolls from 0 to 99, which are kind of mathematical and less like playing a game. So, they decided to make a roll of 00 and 0 stand for 100 instead of 0.

As an aside, we used to just use two ten sided dice twice. A "4 5" would be 45. In that case, a roll of "0 0" would be 100, and was easier to see, in my mind, because I would just put a "1" in front of the first 0 and make it "10" and "0".

  • 2
    \$\begingroup\$ I don't believe D&D has ever used a percentile roll of 00 to represent a result of zero (though perhaps your group interpreted ambiguous rules that way). Monsters & Treasure from the original 1974 D&D boxed set already used charts where 00 is placed after 99 in place of 100. The Holmes 1977 Basic set was ambiguous in how to read zero on percentile dice, but the gems chart on page 33 uses 00 in the 100 position (i.e. a roll of 96-00 for gems with a base price of 1,000 gp). \$\endgroup\$ Commented Jan 19, 2020 at 16:18
  • 5
    \$\begingroup\$ Also, I more commonly see it interpreted that D&D 3e followed its numbering from AD&D 1e and AD&D 2e, rather than by assigning Original/Basic "1e" and and AD&D "2e" (though I have seen some users online make the latter interpretation). It's also common to call the 1974 white/woodgrain box set "Original D&D", and reserve "Basic D&D" for the product line which ran coterminous with AD&D from 1977 until TSR's bankruptcy. It was this Basic D&D that was aimed more a kids, whereas Original D&D I think was original aimed at existing miniature wargamers. \$\endgroup\$ Commented Jan 19, 2020 at 16:30
  • \$\begingroup\$ So, just a way to implement a dislike of zero, then. 00-99 would have worked just as well. \$\endgroup\$
    – Rosie F
    Commented Jan 19, 2020 at 19:04
  • \$\begingroup\$ @RosieF Yep. People without a math/CS/IT background find counting from 0 unnerving. Look at how we consider midnight "12:00" instead of "0:00" (except for military and computer usage that goes from 00:00 to 23:59, sensibly indicating the time of day as how much time has elapsed since midnight), making 1 am after 12 am. "00"=100 is just the "12 midnight" of percentile dice. \$\endgroup\$ Commented Jan 21, 2020 at 18:41
  • 1
    \$\begingroup\$ We are not counting anything, though, just finding which of the 100 possible centiles is our fate. And it does seem more natural to me for the first d10 to indicate the decile, a 0 indicating the bottom decile, rather than 0 indicating either the bottom 9% or the top 1%. \$\endgroup\$
    – Rosie F
    Commented Jan 21, 2020 at 18:44

It's a matter of ease in counting

Imagine you need a way to generate a random number between 1 and 100 by using dice.

You don't want to use a zoccahedron (it's bulky, it's hard to tell which of its faces is "up", it rolls off the table... horrible, horrible idea), but you know your maths and you know you can subdivide the possible values in 2, 4, 10, 25 or 50 equal "buckets", roll once to select a bucket and then roll again to select a single value from that bucket. After a little experimenting, you decide that 10 buckets with 10 values each is the way to go. Wonderful!

Intuitively, it's easier to find results if there's some method to how the values are assigned to the buckets. Maybe every bucket has all the numbers starting with the same digit (the tens digit)... no, that's a problem, there's only 9 numbers starting with 0_ in 1-100, and only one starting with 10_.

Well, you think about it some more and you decide that a sensible way to do it would be to just write the numbers in order and assign 10 to the first bucket, 10 to the second and so on.

This is where the problems start

It's easy to notice how this subdivision really calls for a die numbered 1-10 for choosing a specific number in any of the buckets. 31-40 bucket? Well, that's just 30 plus 1-10, so let's call this bucket 30. You do this for all the buckets and you realize you need our infamous 00-90 die to select a bucket.

It works perfectly, isn't it? We roll a 00-90 die, a 1-10 die, we sum them and we get a 1-100 number. The 1-10 die is also better than our usual 0-9 d10 because you don't need to call "10" the "0" and seriously, if this might have been a problem back in the day when 00-90 die were uncommon (imagine having to sum [1-10]*10+[1-10] and getting results from 11 to 110, that would have been horrible!), it's not true anymore in the present day.

Well, not really

You see, we don't really sum 70 and 4 to make 74: we just see the 70 and we think "the result starts with a 7". Then we juxtapose the result of the d10 to that 7.

Let's j be the juxtaposition operator. 7j4=74.

Well, that's as easy as adding 70+4, isn't it?

Yes. Yes, it is, but just think at when you roll a 10 ion the units die. You roll the 00-90 die and you get a 40. Well, it starts with a 4. And then you roll a 10 on your d10. 40+10=50. Ah, you really need to use sums here, juxtaposition don't work anymore. But what if we used a 0-9 d10? 40 and 0. 4j0. 40. Boom. Done.

So, maybe we should shift our buckets. If the d10 was 0-9, our first bucket would have to be 0-9, the second would be 10-19 and so on. Juxtaposition works wonderfully. but you have a 0-99 range now instead of a 1-100 range. The solution? When you get a 0 you call it a 100.

Of course you have the same identical problem when rolling a lone d10. You have a 0-9 range but you wanted a 1-10 range, so you do the same thing: When you get a 0 you call it a 10

So, in the end:

I think you have it backwards.

You say that a 0 on a d10 is really a 10, but that would be the same as having 1-10 dice, and the only reason we have 0-9 dice instead is to make d% easier to read.

When you use a d10 as part of a d100, you don't read the value on that single dice as a 10: you total the dice up (using sum or juxtaposition, it's the same in this case) and only then, if you rolled a 0, well, that's a 100.

When you roll a d10 you see the total result and again, if you rolled a 0, that's a 10.

Were you to roll a d1000, you'd take 000+00+0=0 and call it a 1000, but any other X00+00+0 would just be a X00.


I'm not even going to discuss archaic d20 percentile rolling. I don't see the relevance and more experienced gamers than I have more than sufficiently explained the method that does not involve 2d10 percentile die addressed in the OP.

When rolling 2d10 for a percentile, common practice is to have a ten sided percentile die that is marked as 00,10,20,30,40,50,60,70,80,90 and a standard 10 sided die that us marked as 1,2,3,4,5,6,7,8,9,0.

Now, some may say that I'm already inconsistent in listing 00 first for the percentile and then 0 last for the unit, but even if I were using two unit d10s, I'd still consider 0 to come first on the die allocated for the percentage and last for the single digit, when listing them in order for this type of roll.

The percentile d10 represents the "tens" digit in the percentile result and the single digit die represents the "ones" digit.

In the range of numbers from 01-100, there are 10 positions where there is a 0 in the "tens" place. Those are 01,02,03,04,05,06,07,08,09, and 100.

In mathematics, the number 10 can be broken down to a "1" in the "tens" spot and a 0 in the "ones" spot or 10+0.

Given that, please consider the zeroes on a percentile die as placeholders and not "zero in the ones spot."

It doesn't matter what you roll on the percentile die, the first digit that you see will be in the tens spot and the number remains undefined, e.g. 10 = 1 in the "tens" spot with an undefined "ones" spot or 1?, and, 00 = 0 in the "tens" spot with an undefined "ones" spot or 0?, where in both cases ? can only be 0,1,2,3,4,5,6,7,8, or 9.

Therefore the result for a throw of 00 for the percentile die and 0 for the single digit die, where the result must fall within a range of 1-100, must result in a 0 in the "tens" spot and a 0 in the "ones" spot which compels a 1 in the "hundreds" spot or 100+00+0=100.

Furthermore, the range is 1-100, not 0-100, because a percent is part of 100, not part of 101. Also a 0% on an attempt to hit is essentially missing the shot you never took, because at 1% there will be an outcome of the attempt, dismal as it may be.

I suppose if I were to be running a game and one of the players were to insist that your 00 + 0 as 0% be allowed, I were to allow it for them alone, and they were to roll 00 and 0 for the percentage and single unit d10s respectively, then the outcome would be something along the lines of:

The advancing enemy continues to close within striking distance, appearing slightly confused as you stand, shoulders squared, weapon sheathed, and a look of proud determination on your face as you do absolutely nothing, leaving him free to swing his longsword, seperate your head cleanly from your neck, and send your head flying across the room, bouncing off the wall, and rolling to a stop, your smug, self assured smile settling firmly into the rigor of your cooling muscles and flesh.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .