is the smallest positive machine‐precision number that can be represented in normalized form on your computer system.
$MinMachineNumber
is the smallest positive machine‐precision number that can be represented in normalized form on your computer system.
Details
- Machine-precision numbers smaller in magnitude than $MinMachineNumber have less than $MachinePrecision digits of accuracy.
- Accuracy[0.] equals Accuracy[$MinMachineNumber]. »
- In the underlying binary representation, numbers smaller in magnitude than $MinMachineNumber have significands that do not start with a leading 1. »
Examples
open all close allBasic Examples (1)
Scope (3)
Machine numbers smaller than $MinMachineNumber are represented as subnormal machine numbers:
x = $MinMachineNumber / 2This is still a machine number:
{MachineNumberQ[x], Precision[x]}However, x has not gained accuracy relative to $MinMachineNumber:
Accuracy[x] == Accuracy[$MinMachineNumber]Find the smallest positive normalized machine number algorithmically:
x = 1.;
While[True, Check[y = x;x /= 2, Break[], General::munfl]];
yy - $MinMachineNumberFind the smallest positive subnormal machine number algorithmically:
x = 1.;
While[x ≠ 0, y = x;x /= 2];
yProperties & Relations (4)
Compute the minimum exponent in binary for machine arithmetic:
minexp = Round[RealExponent[$MinMachineNumber, 2]]$MinMachineNumber has that smallest exponent and all bits but the first set to 0 in the significand:
RealDigits[$MinMachineNumber, 2, 53, minexp]Subnormal machine numbers have the minimum exponent and a leading 0 bit in the significand:
RealDigits[$MinMachineNumber / 2, 2, 53, minexp]$MinMachineNumber/252 produces that smallest positive subnormal number:
$MinMachineNumber / 2^52Further division produces a machine zero:
% / 2$MaxMachineNumber×$MinMachineNumber is 4.×(1.-$MachineEpsilon/2):
p = $MaxMachineNumber×$MinMachineNumberp - 4.(1. - $MachineEpsilon / 2)Accuracy[$MinMachineNumber] equals Accuracy[0.]:
Accuracy[$MinMachineNumber] == Accuracy[0.]Possible Issues (2)
Computations with machine numbers smaller than $MinMachineNumber can lose all significant digits:
$MinMachineNumber^2Use SetPrecision to convert a machine number to arbitrary precision and avoid underflow:
SetPrecision[$MinMachineNumber, $MachinePrecision]^2The reciprocal of $MaxMachineNumber is smaller than $MinMachineNumber:
1 / $MaxMachineNumberTech Notes
Related Guides
History
Introduced in 1991 (2.0) | Updated in 2003 (5.0) ▪ 2018 (11.3)
Text
Wolfram Research (1991), $MinMachineNumber, Wolfram Language function, https://reference.wolfram.com/language/ref/$MinMachineNumber.html (updated 2018).
CMS
Wolfram Language. 1991. "$MinMachineNumber." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2018. https://reference.wolfram.com/language/ref/$MinMachineNumber.html.
APA
Wolfram Language. (1991). $MinMachineNumber. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/$MinMachineNumber.html
BibTeX
@misc{reference.wolfram_2026_$minmachinenumber, author="Wolfram Research", title="{$MinMachineNumber}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/$MinMachineNumber.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_$minmachinenumber, organization={Wolfram Research}, title={$MinMachineNumber}, year={2018}, url={https://reference.wolfram.com/language/ref/$MinMachineNumber.html}, note=[Accessed: 13-June-2026]}