Função Javascript para Multiplos e Submultiplos
em
Bom, estava montando uma outra calculadora aqui para a EnergyLabs Brasil, e quis fazer algo mais legalzinho. Fiz uma função em javascript que concatena o valor com o submúltiplo, e já faz as multiplicações necessárias além de arrendondar para duas casas decimais.
Não entendeu? Bom vou exemplificar.
Em física se usa muito múltiplos e submúltiplos para ajudar a escrever unidades. Por exemplo, estamos habituados com a unidade segundo no nosso dia a dia. Para representarmos 0,1 segundo, podemos representar como 100ms (100 milissegundos), para 0,0001 segundo, podemos representar como 100us (100 microssegundos), e assim por diante. Isso são os submúltiplos. Ao invés de escrevermos 0,0001 escrevemos 100 * 10^-6 (100 * 0,000001 que é 0,0001) ou 100us. Os mais comuns submúltiplos são:
- mili – m – 10^-3
- micro – µ – 10^-6
- nano – n – 10^-9
- pico – p – 10^-12
Então vamos lá para a função:
function putunit(v,unit) { var lastunit = ''; var units = ["m","µ","n","p"]; var counter= 0; var value = v; while(value < 1) { lastunit = units[counter]; counter++; value=value*1e3; if(counter==5) break; } value = Math.round(value*1e2)/1e2; return "<B>"+value+"</B> "+lastunit+unit; }
Como usar? Bem simples:
var i = 0.015; var resultado = putunit(i,"s");
Quer um exemplo mais prático? Vamos lá então, uma página HTML 😀
function putunit(v,unit) { var lastunit = ''; var units = ["m","µ","n","p"]; var counter= 0; var value = v; while(value < 1) { lastunit = units[counter]; counter++; value=value*1e3; if(counter==5) break; } value = Math.round(value*1e2)/1e2; return "<B>"+value+"</B> "+lastunit+unit; } function pegarvalor() { var i = parseFloat(document.getElementById('valor').value); document.getElementById('resultado').innerHTML = putunit(i,"s"); }
Insira um valor: <input type="text" id="valor" name="valor"> <input type="button" onClick="pegarvalor();" value="Pegar"><BR> Resultado: <div id="resultado"></div>
Ou se preferir ver no Codepad: http://codepad.org/hGDQsbT1
Faça o teste e terá resultados assim:
Viu como é prático? Você pode usar a mesma ideia da função para os múltiplos também!