Paritian

Programação

Calculadora da Precisão da Vírgula Flutuante (IEEE 754: Float, Double, Meia, bfloat16)

Quão grosseira é a reta numérica à volta de qualquer valor em meia precisão, bfloat16, precisão simples ou dupla: o intervalo até ao número seguinte, o épsilon da máquina, os algarismos fiáveis e o maior inteiro ainda exato.

Resultados

Intervalo até ao número representável seguinte nesse valor 1,38778e-17
Esse intervalo como fração do valor 1,38778e-16
Épsilon da máquina (intervalo logo acima de 1) 2,22045e-16
Algarismos decimais fiáveis 15,95
Maior inteiro antes de os inteiros começarem a saltar 9,0072e+15
Maior valor finito 1,79769e+308

O que faz esta ferramenta

Os números em vírgula flutuante só estão igualmente espaçados dentro de cada potência de dois: o intervalo duplica sempre que o valor duplica, mas continua a ser a mesma fração do valor. É por isso que 0,1 + 0,2 não dá exatamente 0,3, que um float de 32 bits deixa de contar inteiros em 16 777 216, e que um número do JavaScript só é exato para inteiros até 2⁵³ (9 007 199 254 740 992). A partir daí o intervalo num double é 2, depois 4, depois 8. Use o intervalo, e não o número de algarismos mostrados, para julgar até onde se pode confiar num resultado.

Fórmula

gap (ULP) = 2^(⌊log₂|x|⌋ − p) · ε = 2^−p · digits ≈ (p + 1) log₁₀ 2 · largest gap-free integer = 2^(p+1) (p = 10, 7, 23, 52 fraction bits)

Variáveis

SímboloSignificadoUnidade
fmFormato do número—
xValor a examinar—
UIntervalo até ao número representável seguinte nesse valor—
REsse intervalo como fração do valor—
EPÉpsilon da máquina (intervalo logo acima de 1)—
DGAlgarismos decimais fiáveis—
MIMaior inteiro antes de os inteiros começarem a saltar—
MVMaior valor finito—

Exemplo resolvido

  • Formato do número4
  • Valor a examinar0,1
  • Intervalo até ao número representável seguinte nesse valor1,38778e-17
  • Esse intervalo como fração do valor1,38778e-16
  • Épsilon da máquina (intervalo logo acima de 1)2,22045e-16
  • Algarismos decimais fiáveis15,95
  • Maior inteiro antes de os inteiros começarem a saltar9,0072e+15
  • Maior valor finito1,79769e+308

Limitações

  • A fórmula assume condições ideais: sem perdas por atrito, sem resistência do ar e sem perdas de rendimento, a não ser que as introduza.
  • O cálculo é feito com precisão total e apenas a apresentação é arredondada. Se copiar um valor intermédio e voltar a escrevê-lo, podem surgir pequenas diferenças.