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!