Número em Jscript

Operações numéricas em Jscript parecem não funcionar corretamente.

Segue algumas operações onde o resultado não é verdadeiro:

<html>
<head>
<script>
function displayValue() {
  document.getElementById("demo").innerHTML= 0.1 + 0.2 === 0.3;
}
</script>
</head>
<body>

<h1>My JavaScript Number teste</h1>
<p id="demo"></p>
<button type="button" onclick="displayValue()">Display</button>
</body>
</html> 

Ao executar esse código, o resultado da soma 0.1 + 0.2 deveria ser 0.3, correto? Então porque ao comparar o resultado com 0.3 retorna false?

Porque acontece isso? Deve ter alguma razão correto? Sim, existe, a explicação é simples, em Jscript números são representados com precisão dupla. Infelizmente ou felizmente JScript não é a única linguagem a implementar dessa maneira. Python e muitas outras também. Realize um teste por curiosidade.

Voltando a nossa discussão em JScript, então como eu faço para conseguir somar esses valores e conseguir a mesma representação que a linguagem humana?
Simples, altere o resultado para retornar o número de casas decimais máximas que deseja representar conforma abaixo:

function displayValue() {
var result = 0.1 + 0.2;
document.getElementById("demo").innerHTML= result.toFixed(2) == 0.3;
}

Abraços,
André Rezende