Eu queria utilizar Math.round, porém com 2 casas decimais. Por isso Eu pensei em multiplicar por 100 o valor a ser arredondado e depois dividir por 100.
O problema é que ao utilizar o método de calcular o IMC via variáveis. Ao subtrair o IMC com o round.math de um inteiro, o resultado não é o mesmo do que utilizando o calculo direto. dá uma diferneça de 0.000000000000001. Algém sabe me explicar o motivo?
Segue meu código abaixo:
<!--<meta charset="UTF-8" /> -->
<script>
var pulaLinha = function () {
document.write("<br>");
};
var sublinhar = function () {
document.write("<hr>");
};
var mostra = function (frase) {
document.write(frase);
sublinhar();
pulaLinha();
};
var CalculoIMC = function (peso, altura) {
var imc = peso / (altura * altura);
return Math.round(imc * 100) / 100;
};
var CalculoIMC_Obesidade = function (peso, altura) {
var imcObesidade = 35 - (peso / (altura * altura));
return Math.round(imcObesidade * 100) / 100;
};
var CalculoIMC_Magreza = function (peso, altura) {
var imcMagreza = (peso / (altura * altura)) - 18;
return Math.round(imcMagreza * 100) / 100;
};
var peso = prompt("Qual é o seu Peso?");
var altura = prompt("Qual é a sua altura?");
mostra("Peso: " + peso + "<br>" + "Altura: " + altura); // 78 ... 1.75
// Forma 1:
mostra("Meu IMC é: " + CalculoIMC(peso, altura)); // 25.47
mostra("Estou distante da Obesidade: " + CalculoIMC_Obesidade(peso, altura)); // 9.53
mostra("Estou distante da Magreza: " + CalculoIMC_Magreza(peso, altura)); // 7.47
// Forma 2:
var MeuIMC = CalculoIMC(peso, altura);
var DiffObesidade = 35 - MeuIMC;
var DiffMagreza = MeuIMC - 18;
mostra("Meu IMC é: " + MeuIMC); // 25.47
mostra("Estou distante da Obesidade: " + DiffObesidade); // 9.530000000000001
mostra("Estou distante da Magreza: " + DiffMagreza); // 7.469999999999999
</script>