【发布时间】:2014-03-15 03:40:14
【问题描述】:
我是 javaScript 的新手。我正在构建一个计算器here
我已将输入值存储在变量中,以便最终可以操纵结果以根据输入执行计算。现在我只想把所有的值加在一起。
但是,它们不是相加,而是串联。我使用 parseInt 来防止 javascript 将数字视为字符串,而 typeOf 显示它们是数字。
这是我的 javascript:
$(document).ready(function() {
var theTerm = $("#theTerm").val();
var theRate = $("#theRate").val();
var thePrice = $("#thePrice").val();
var theTax = $("#theTax").val();
var theDown = $("#theDown").val();
var theTrade = $("#theTrade").val();
var theResult = parseInt(theTerm + theRate + thePrice + theTax + theDown + theTrade, 10);
$("#calculate").click(function(){
alert(theResult);
alert(typeof(theResult));
});
});
和 HTML:
<div id="calculator">
<span id="calculatorHeader">Monthly Payment Calculator</span>
<table style="margin:0 auto;">
<tr>
<td style="width:40px;">Term
<input id="theTerm" size="5" value="7" name="term" style="width:35px" />
</td>
<td style="width:40px;">Rate(%)
<input id="theRate" size="5" value="7" name="apr" style="width:35px" />
</td>
<td style="width:55px;">Price($)
<input id="thePrice" size="6" maxlength="7" name="price" style="width:50px" value="7" />
</td>
<td style="width:40px;">Tax(%)
<input id="theTax" size="4" maxlength="7" name="tax" style="width:35px" value="7" />
</td>
<td style="width:40px;">Down($)
<input id="theDown" size="5" maxlength="7" name="downPmt" style="width:35px" value="7" />
</td>
<td style="width:40px;">Trade($)
<input id="theTrade" size="5" maxlength="7" name="trade" style="width:35px" value="7" />
</td>
<td style="width:78px;">Est.Monthly Pmt
<input id="theResult" size="7" maxlength="7" name="result" style="width:75px" value="0" />
</td>
</tr>
</table>
<button type="button" id="calculate">Add Boxes!</button>
</div>
【问题讨论】:
-
在每个号码上使用
parseInt,然后将它们相加。 -
parseInt不是一个环境,它会导致其中的所有内容都被视为数字。它是一个接受字符串并返回整数的函数。你有几个字符串;去获取几个整数。 -
您缺少的是
.val()返回用户键入的内容,即string。当你添加字符串时,你会得到另一个字符串。如果你加上“13”+“26”,你会得到“1326”,而不是39。 -
@jfriend00 我通过使用 typeOf 弄清楚了这一点,用谷歌搜索了要做什么,然后在我的原始帖子中使用了代码(使用 parseInt)。奇怪的是 typeOf 然后返回“数字”但仍然连接结果,就好像它是一个字符串!
-
您添加了字符串,然后转换为数字。在添加之前,您必须转换为数字。
标签: javascript jquery