admin管理员组

文章数量:1312747

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
Add a ment  | 

2 Answers 2

Reset to default 4

toFixed 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

本文标签: javascriptRound decimal point with HTML5 outputStack Overflow