I am building an html5 calculator that looks like
<form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"<br>
<input name="a" id="a" type="number" step="any"> +<br>
<input name="b" id="b" type="number" step="any"> =<br>
<output name="o" for="a b"></output><br>
</form>
And would like to round the results to 2 decimal points.
I am building an html5 calculator that looks like
<form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"<br>
<input name="a" id="a" type="number" step="any"> +<br>
<input name="b" id="b" type="number" step="any"> =<br>
<output name="o" for="a b"></output><br>
</form>
And would like to round the results to 2 decimal points.
Share Improve this question edited Jun 17, 2012 at 0:37 Joseph 120k30 gold badges184 silver badges237 bronze badges asked Jun 17, 2012 at 0:33 RLeisingerRLeisinger 2182 gold badges3 silver badges10 bronze badges 1-
Hmm,
<output>
tag. Interesting... – Joseph Commented Jun 17, 2012 at 0:38
2 Answers
Reset to default 4toFixed is another way to achieve what you are looking for, and will always show the decimal places regardless if they are 0 or not.
<form onsubmit="return false" oninput="o.value = (a.valueAsNumber + b.valueAsNumber).toFixed(2)"<br>
<input name="a" id="a" type="number" step="any"> +<br>
<input name="b" id="b" type="number" step="any"> =<br>
<output name="o" for="a b"></output><br>
</form>
Live Demo
This will round to two decimal places.
Math.round(num * 100)/100
This is a more general version of it, rounds to a set number of places.
function roundNumber(num, places) {
return Math.round(num * Math.pow(10, places)) / Math.pow(10, places);
}
roundNumber(24.2424, 2)
24.24