utildev
← Blog
Conversores5 min

Conversores de unidade e precisão numérica

Por que conversores de unidade importam no desenvolvimento de software, como o ponto flutuante causa erros silenciosos e boas práticas para cálculos com precisão.

Conversão de unidades parece simples: multiplique por um fator. Mas em software, a aparente simplicidade esconde armadilhas reais — de falhas de precisão em JavaScript a problemas históricos como o Mars Climate Orbiter, perdido em 1999 porque um módulo da NASA usou pounds-force enquanto outro esperava Newton.

O problema do ponto flutuante em JavaScript

JavaScript usa IEEE 754 double-precision (64 bits) para todos os números. Isso significa que certos valores decimais não podem ser representados exatamente em binário, causando erros de arredondamento.

console.log(0.1 + 0.2);  // 0.30000000000000004
console.log(1.005.toFixed(2));  // "1.00" (esperado: "1.01")

// Para valores monetários, prefira centavos (inteiros):
const preco = 1005; // R$ 10,05 em centavos
console.log(preco / 100);  // 10.05 ✓

Sistemas de unidades principais

  • SI (Sistema Internacional): metro, quilograma, segundo, Kelvin — padrão científico e técnico mundial
  • Imperial (EUA): polegada, pé, milha, libra, Fahrenheit — ainda dominante nos EUA para uso cotidiano
  • Customário britânico: similar ao imperial com algumas diferenças (galão UK ≠ galão US)
  • Náutico: milha náutica (1.852m), nó (velocidade)

Conversões comuns que desenvolvedores precisam

  • Temperatura: °C × 9/5 + 32 = °F; (°F − 32) × 5/9 = °C; K = °C + 273,15
  • Peso: 1 kg = 2,20462 lb; 1 lb = 0,453592 kg
  • Distância: 1 km = 0,621371 mi; 1 polegada = 2,54 cm
  • Velocidade: 1 km/h = 0,277778 m/s; 1 mph = 1,60934 km/h

Boas práticas em código

Evite conversões encadeadas (celsius → fahrenheit → kelvin). Cada passo introduz erro de arredondamento. Prefira sempre converter de/para a unidade base diretamente.
  • Defina uma unidade base interna (ex: metros, gramas, Kelvin) e converta apenas na apresentação
  • Use bibliotecas como decimal.js para cálculos monetários de alta precisão
  • Documente explicitamente a unidade de cada parâmetro e variável
  • Em APIs, sempre especifique a unidade no nome do campo (ex: height_cm, weight_kg)

Use os Conversores de Distância, Temperatura e Peso do UtilDev para conversões rápidas e precisas no navegador, com suporte a múltiplas unidades simultaneamente.

Ferramentas relacionadas

Conversor de Distância
Converta entre km, m, milhas, jardas, etc
Conversor de Temperatura
Converta entre Celsius, Fahrenheit e Kelvin
Conversor de Peso
Converta entre kg, g, libras, onças, etc