({{, (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber])
is the smallest positive machine-precision number that can be represented in normalized form on your computer system. }})

OpenersNotesSection(Spacer1)Details

Machine-precision numbers smaller in magnitude than (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber]) have less than (RefLink[$MachinePrecision, paclet:ref/$MachinePrecision]) digits of accuracy.

(RefLink[Accuracy, paclet:ref/Accuracy])[0.] equals (RefLink[Accuracy, paclet:ref/Accuracy])[$MinMachineNumber]. »

In the underlying binary representation, numbers smaller in magnitude than (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber]) have significands that do not start with a leading 1. »

OpenersPrimaryExamplesSection(Spacer1)Examples  (10)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

The smallest hardware floating-point number that can be put in normalized form:

$MinMachineNumber

OpenersExampleSection1(Spacer1)Scope  (3)

Machine numbers smaller than (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber]) are represented as subnormal machine numbers:

x=$MinMachineNumber/2

This is still a machine number:

{MachineNumberQ[x],Precision[x]}

However, x has not gained accuracy relative to (RefLink[$MinMachineNumber, paclet:ref/$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]];
y

y-$MinMachineNumber

Find the smallest positive subnormal machine number algorithmically:

x=1.;
While[x≠0,y=x;x/=2];
y

OpenersExampleSection2(Spacer1)Properties & Relations  (4)

Compute the minimum exponent in binary for machine arithmetic:

minexp = Round[RealExponent[$MinMachineNumber,2]]

(RefLink[$MinMachineNumber, paclet:ref/$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/(2^52) produces that smallest positive subnormal number:

$MinMachineNumber/(2^52)

Further division produces a machine zero:

%/2

(RefLink[$MaxMachineNumber, paclet:ref/$MaxMachineNumber])×$MinMachineNumber is 4.×(1.-(RefLink[$MachineEpsilon, paclet:ref/$MachineEpsilon])/2):

p=$MaxMachineNumber×$MinMachineNumber

p-4.(1.-$MachineEpsilon/2)

(RefLink[Accuracy, paclet:ref/Accuracy])[$MinMachineNumber] equals (RefLink[Accuracy, paclet:ref/Accuracy])[0.]:

Accuracy[$MinMachineNumber]==Accuracy[0.]

OpenersExampleSection3(Spacer1)Possible Issues  (2)

Computations with machine numbers smaller than (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber]) can lose all significant digits:

($MinMachineNumber^2)

Use (RefLink[SetPrecision, paclet:ref/SetPrecision]) to convert a machine number to arbitrary precision and avoid underflow:

((SetPrecision[$MinMachineNumber,$MachinePrecision])^2)

The reciprocal of (RefLink[$MaxMachineNumber, paclet:ref/$MaxMachineNumber]) is smaller than (RefLink[$MinMachineNumber, paclet:ref/$MinMachineNumber]):

1/$MaxMachineNumber

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[$MinNumber, paclet:ref/$MinNumber])  ▪  (RefLink[$MachineEpsilon, paclet:ref/$MachineEpsilon])  ▪  (RefLink[MachinePrecision, paclet:ref/MachinePrecision])  ▪  (RefLink[$MachinePrecision, paclet:ref/$MachinePrecision])  ▪  (RefLink[$MaxMachineNumber, paclet:ref/$MaxMachineNumber])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Machine-Precision Numbers, paclet:tutorial/MachinePrecisionNumbers])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Precision & Accuracy Control, paclet:guide/PrecisionAndAccuracyControl])}, {▪(RefLinkPlain[System Information, paclet:guide/SystemInformation])}, {▪(RefLinkPlain[Representation of Numbers, paclet:guide/RepresentationOfNumbers])}})}})