2

I have this very basic calculator:

<html>
    <body>
        <form name="form">
            <input type="text" name="num1" />
            <input type="text" name="num2" />
            <input type="text" name="res" />
            <input type="button" value="+" onclick="form.res.value = form.num1.value + form.num2.value" />
        </form>
    </body>
</html>

But it treats form.num1.value and form.num2.value as string and because of it the result is the concatenation of these values instead of addition.

How to treat them as numbers?

Billie
  • 8,938
  • 12
  • 37
  • 67

4 Answers4

6

Wrap each value in a parseInt(value, 10) or parseFloat(value).

Daniel A. White
  • 187,200
  • 47
  • 362
  • 445
2

Shortest way is the unary plus operator, which converts to Number:

+form.num1.value + +form.num2.value

Note: it will return NaN for mixed inputs like "10 potatoes". To avoid that, you can use parseInt or parseFloat.

Community
  • 1
  • 1
bfavaretto
  • 71,580
  • 16
  • 111
  • 150
1

Try to convert them to number like this:

onclick="Numberform.res.value = Number(form.num1.value) + Number(form.num2.value)"
Shryme
  • 1,572
  • 1
  • 14
  • 22
1

Convert them to numbers with the + operator or parseFloat.

Poetro
  • 574
  • 3
  • 9