我正在构建一个基本应用程序以了解更多信息,但是遇到了一个问题。
我有3个输入框。人,账单,小费。数学如下:
(清单+小费)/人。当我尝试对代码进行划分时,似乎会加到总数的末尾。
到目前为止,我有这个。 http://jsfiddle.net/ma9ic/a8eJT/
var updateTotal = function () {
var people = parseInt($('#people').val());
var bill = ($('#bill').val());
var tip = ($('#tip').val());
var billTip = bill + tip;
var billTipPeople = billTip / people;
$('#total').text("£" + billTipPeople)
如果我能指出正确的方向,那就太好了:)
最佳答案
你很亲密我像这样工作
var updateTotal = function () {
var people = parseInt($('#people').val(),10);
var bill = parseFloat($('#bill').val());
var tip = parseFloat($('#tip').val());
var billTip = bill + tip;
var billTipPeople = billTip / people;
if (isNaN(billTipPeople)) billTipPeople = 0; // output zero if NaN
$('#total').text("£" + billTipPeople.toFixed(2))
问题是javascript有一些关于字符串连接的怪异规则。 “ 1” +“ 1” ==“ 11”。您每次都必须明确。
parseInt GOTCHA:始终使用parseInt的第二个(可选)基本参数。否则,像“ 015”这样的值将被解析为八进制,转换为十进制数字13。因此,流行的笑话是:“为什么程序员混淆万圣节和圣诞节?因为OCT31 == DEC25!”
关于javascript - 划分输入时的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17190958/