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
- 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.