A p-value of exactly zero is not possible in theory, but it shows up in practice all the time. When statistical software prints “p = 0.000,” it is not telling you the probability is literally zero. It is telling you the number is too small to fit in the display format the program has been asked to use. The gap between what the math says and what your screen shows is worth understanding, because confusing the two can lead to overstated conclusions and sloppy reporting.
Why a True P-Value of Zero Cannot Exist
A p-value measures how likely you would be to see data as extreme as what you observed, assuming that nothing interesting is actually going on (the null hypothesis). For the p-value to be exactly zero, the observed result would need to be literally impossible under the null hypothesis. In continuous probability distributions, every outcome has some nonzero probability density, no matter how far out in the tail it sits. You can get breathtakingly close to zero, but you cannot reach it. A result five standard deviations from the mean is extraordinarily unlikely, and a result ten standard deviations from the mean is more unlikely still, yet neither has a probability of exactly zero.
This is not a quirk of one particular test or one particular distribution. It follows from the way probability works for continuous variables. As long as the statistical model assigns some positive probability to every possible outcome, the p-value has a floor above zero. The floor may be so low that it is scientifically meaningless to distinguish it from zero, but the distinction matters if you want to understand what p-values actually are.
What Software Actually Shows You
Most statistical packages display p-values with a fixed number of decimal places, commonly three or four. When the computed value is, say, 0.00000034, the software rounds it down and prints “p = 0.000.” This is a display-layer problem, not a computational one. The underlying value is still stored in memory with full floating-point precision. The number is neither lost nor distorted. It is simply shown with too few decimal places to convey its actual magnitude.1Metrologia. Digital precision in metrology: significant figures and trailing zeros as machine readable metadata
This creates a real communication problem. A researcher who copies “p = 0.000” from output into a manuscript is implicitly claiming a zero probability, which we have just established is impossible. Better reporting conventions exist. The American Psychological Association’s style guide, for instance, recommends writing “p < .001” rather than rounding to zero. Some journals have adopted this as policy. If your software hands you “p = 0.000,” the honest thing to report is “p < .001” or, when the software allows it, the actual computed value in scientific notation.
There is a second, subtler layer to this. Computers represent numbers in floating-point arithmetic, which has a finite precision. A 64-bit floating-point number (the standard in most statistical software) can represent values as small as roughly 10⁻³⁰⁸. For extraordinarily large test statistics, the computed p-value can underflow to the point where the machine literally stores it as zero, not because probability theory says so, but because the hardware ran out of digits. In genomics and particle physics, where millions of tests produce some extreme results, researchers sometimes work with log-transformed p-values to avoid this computational bottleneck entirely.
The Special Case of Permutation Tests
Permutation tests are a common approach in biology and genomics where you shuffle the labels on your data thousands or millions of times and ask how often a random shuffle produces a result as extreme as the one you actually got. If you run 10,000 permutations and none of them beats your observed test statistic, it is tempting to report a p-value of zero. But this would be wrong. The minimum possible p-value in a permutation test is not zero; it is determined by the total number of permutations. One of the possible label configurations is always the original, unpermuted arrangement, which by definition produces your observed test statistic. That arrangement alone guarantees a nonzero numerator.2Oxford University Press. Fewer permutations, more accurate P-values
In practice, researchers often add a small pseudocount to the numerator and denominator to avoid returning a zero. If you ran 10,000 permutations, the minimum reported p-value would typically be something like 1/10,001 rather than 0/10,000. This convention exists precisely because a p-value of zero is theoretically impossible in this framework, and reporting one would be misleading. The practical consequence is that if you need a very small p-value from a permutation test, you need to run a very large number of permutations. Reporting “p < 0.0001” from a permutation test with only 1,000 permutations does not make sense, because the test simply cannot resolve probabilities that small.
Discrete Distributions and Their Floor
Some common statistical tests produce p-values from discrete distributions, meaning the p-value can only take certain specific values rather than any number on a smooth continuum. Fisher’s exact test, used for small samples in contingency tables, is a classic example. When sample sizes are small, the set of possible p-values is limited and the distribution of those p-values can look nothing like the smooth uniform distribution that holds for large-sample continuous tests.3PubMed Central. The p-value and model specification in statistics
For discrete tests, the smallest achievable p-value is bounded by the sample size and the structure of the data. With a 2×2 table and tiny cell counts, the most extreme possible data configuration may correspond to a p-value of, say, 0.03. No matter how dramatic the result, the p-value physically cannot go lower than that floor. This is another reason a p-value of zero is unattainable: the mathematics sets a hard minimum that depends on the test and the sample.
When P-Values Get Astronomically Small
The fact that zero is impossible does not mean that p-values cannot be staggeringly tiny. In particle physics, the standard for claiming a discovery is a “5-sigma” result, corresponding to a p-value of about 0.0000003. The Higgs boson discovery in 2012 met this threshold. In genome-wide association studies, researchers routinely test millions of genetic variants simultaneously, and individual p-values of 10⁻⁵⁰ or smaller are not unheard of. At those magnitudes, the practical difference between 10⁻⁵⁰ and zero is nonexistent for decision-making purposes. But the conceptual difference matters: a very small p-value tells you the data are wildly inconsistent with the null hypothesis, while a zero p-value would tell you the data are logically impossible under the null hypothesis, a much stronger and almost certainly unwarranted claim.
Large samples tend to push p-values toward smaller numbers even when the underlying effect is trivially small. With millions of observations, a difference that no one would care about clinically or practically can still produce a p-value far below any conventional threshold. This is one of the central tensions in modern statistics: large datasets almost guarantee tiny p-values, which creates an illusion of importance when the effect itself may be negligible.4PubMed Central. Statistical significance or clinical significance? A researcher’s dilemma for appropriate interpretation of research results
Are Point Null Hypotheses Ever Exactly True?
There is a deeper philosophical question lurking behind the “can p be zero” debate. Most hypothesis tests in science test a “point null,” a hypothesis that some parameter equals exactly a specific value, usually zero. For example, the null hypothesis might state that the difference in average blood pressure between two treatment groups is exactly 0.000… mmHg. Some statisticians have argued that such point nulls have zero probability of being true in the real world. If two treatments differ by even a thousandth of a unit, the null hypothesis is technically false.5Journal of Modern Applied Statistical Methods. Testing Point Null Hypothesis of a Normal Mean and the Truth: 21st Century Perspective
If point nulls are always false, then with enough data, you will always reject them, and the p-value will shrink toward zero as sample size grows. This is not a flaw in the data or the test. It is a consequence of testing a hypothesis that was never exactly true in the first place. The practical takeaway is that a tiny p-value from a massive dataset may just be confirming something trivially obvious rather than revealing something scientifically meaningful. Some researchers have argued this is a reason to move beyond p-values entirely, or at least to supplement them with effect sizes and confidence intervals that tell you how big a difference is, not just whether one exists.
When the Model Itself Is Wrong
All p-values are computed under assumptions about the data: that it follows a certain distribution, that observations are independent, that the model is correctly specified. When those assumptions are violated, the p-value can behave in strange ways. Under some forms of model misspecification, the true probability of a false positive (Type I error) is not the nominal level you set. It can be lower, or it can be higher. In certain situations, the real false-positive rate actually increases as sample size grows and can approach 100%, which is the opposite of what most people assume bigger samples do.6PubMed Central. Errors in Statistical Inference Under Model Misspecification: Evidence, Hypothesis Testing, and AIC
This matters for the “p equals zero” question because a misspecified model can produce absurdly small p-values that are artifacts of the wrong assumptions rather than evidence of a real effect. If you see a p-value that your software rounds to zero, one of the things worth checking is whether the statistical model fits the data well. A vanishingly small p-value from a poorly fitting model is less impressive than it looks.
How Fisher Actually Thought About P-Values
The modern fixation on specific p-value cutoffs has a complicated history. Ronald Fisher, who popularized the p-value in the 1920s, chose the 0.05 threshold largely for practical convenience. In the era before computers, researchers looked up critical values in printed tables, and a cutoff of roughly two standard deviations from the mean (which corresponds to p ≈ 0.05 for a normal distribution) was easy to work with. Fisher himself never intended it to be a rigid boundary. He wrote that no scientist should use the same significance level in all circumstances, and his own published tables included multiple columns for different thresholds, making clear that 0.05 was a starting point, not a law.7PubMed Central. Before p < 0.05 to Beyond p < 0.05: Using History to Contextualize p-Values and Significance Testing
Fisher viewed the p-value as a continuous measure of evidence against the null hypothesis, not a binary switch. A p-value of 0.04 was not meant to be categorically different from one of 0.06. This perspective makes the “can it be zero” question feel somewhat academic: if the p-value is a sliding scale of evidence, an extremely small one simply represents extremely strong evidence against the null, and whether it technically reaches zero is less important than what it tells you about the phenomenon under study.
Bayesian Alternatives and the Zero Problem
Bayesian statistical methods sidestep the zero-p-value issue entirely by framing questions differently. Instead of asking “how surprised would I be if the null hypothesis were true,” a Bayesian approach asks “given the data, how much should I update my belief about which hypothesis is more likely?” The tool for comparing hypotheses in this framework is the Bayes factor, which quantifies how much the data favor one hypothesis over another. A Bayes factor can be enormous, suggesting overwhelming evidence for one side, but it does not bottom out at zero in the same way a p-value threatens to.8PubMed Central. A Test by Any Other Name: P Values, Bayes Factors, and Statistical Inference
The Bayesian perspective also highlights something important about the zero-p-value question. A p-value of zero would mean you have observed something that is literally impossible under the null hypothesis. If your data are truly impossible under the null, the null is not just unlikely; it is logically excluded. In practice, the data are almost never logically impossible under any reasonable null; they are just very improbable. The Bayesian framework, by working with probabilities rather than yes/no impossibilities, avoids the conceptual trap of treating “very unlikely” as “impossible.”
Reporting Practices and Why This Confusion Persists
Part of the reason “p = 0” keeps appearing in published work is that the norms for reporting p-values have been inconsistent for decades. Some style guides insist on “p < .001,” while software defaults encourage copying exact output. Researchers under time pressure often paste whatever the program gives them, and reviewers do not always catch it. The result is a published literature sprinkled with technically impossible claims about zero probabilities.
The baseline distribution of p-values has itself been a subject of study. Under a true null hypothesis with continuous variables, p-values should be uniformly distributed: equally likely to land anywhere between 0 and 1. Research examining randomized trials has confirmed that this holds for continuous baseline variables, lending credibility to the theoretical framework. For categorical variables, though, the distribution departs from uniformity, a reflection of the discrete-distribution quirk discussed earlier.9PubMed Central. Fewer permutations, more accurate P-values
If you are a researcher encountering “p = 0.000” in your own output, the responsible move is straightforward. Report the value as “p < .001” or, if your software can give you the exact value, report it in scientific notation (something like p = 3.4 × 10⁻⁷). If you are a reader seeing “p = 0” in someone else’s paper, you can safely translate it to “the p-value was extremely small” without worrying that the authors discovered something logically impossible. The theoretical floor above zero and the practical reality of truncated displays are two different problems, and recognizing that distinction is most of the battle.
Extremely Small P-Values in Genomics and Physics
Fields that routinely generate extremely small p-values have had to develop their own conventions for handling them. In genome-wide association studies, the threshold for declaring a finding “genome-wide significant” is typically set at 5 × 10⁻⁸, a correction for the roughly one million independent statistical tests being performed simultaneously. Individual associations that clear this bar sometimes have p-values of 10⁻²⁰⁰ or smaller, numbers so extreme they strain the capacity of standard floating-point arithmetic. Researchers in this area frequently work with the negative logarithm of the p-value rather than the p-value itself, because -log₁₀(p) = 200 is easier to compare and plot than a number with 200 zeros after the decimal point.
Particle physics uses a completely different vocabulary to express the same concept. The “sigma” notation translates a p-value into the number of standard deviations from the mean of a normal distribution, so a 3-sigma result corresponds to a p-value of about 0.003, and a 5-sigma result to about 0.0000003. The 5-sigma convention exists precisely because the community recognizes that small p-values alone can be misleading. They want the evidence bar set extraordinarily high before they claim a new particle exists. Even at 5 sigma, the p-value is not zero; it is just small enough to make the researchers confident they are not chasing noise. These field-specific conventions illustrate that the question “can the p-value be zero” is largely a distraction from the more useful question: “how small does it need to be for us to take the finding seriously?”