工作总计仅显示整数的总和

时间:2014-12-03 20:57:19

标签: javascript

这是我正在使用的JSBin ... http://jsbin.com/duwiji/3/edit

它将获得两个乙烯基成本。问题是它只会添加整个数字并在总工作成本字段中显示。

注意错误在作业总计中... 9 x 33的总数应该是38.61美元,但它会给出37.00美元。

任何想法?

这是HTML

<p>Enter dimensions and tab through</p>

Dimensions <input type="text" id="dim01"  onkeyup="multiplyDim();" />
&nbsp; X &nbsp;
<input type="text" id="dim02"  onkeyup="multiplyDim();" />
<br>

= <input type="text" id="sqIn1" value="- - -" /> Sq. In.
<br />1st Color X .08/sq. in. = <input type="text" id="1clr-Cost"      onfocus="multiplyCost01();" />
<br />Additional Colors <input type="text" id="qtyClrs"  onkeyup="multiply();" /> X .05 =     <input type="text" id="2clr-Cost"  onfocus="multiplyCost02();" /><br />
<p>$37.00 <!-- HERE --></p>

Job Total = $<input type="text" id="JobCost"  onfocus="sumJob();" /><br />

这是JS

function multiplyDim() {
    var txtFirstNumberValue = document.getElementById('dim01').value;
    var txtSecondNumberValue = document.getElementById('dim02').value;

    var result = parseInt(txtFirstNumberValue) * parseInt(txtSecondNumberValue);
    if (!isNaN(result)) {
        document.getElementById('sqIn1').value = result;
    }
}

function multiplyCost01() {
    var txtFirstNumberValue = document.getElementById('sqIn1').value;

    var result = parseInt(txtFirstNumberValue) * 0.08;
    if (!isNaN(result)) {
        document.getElementById('1clr-Cost').value = result.toFixed(2);
    }
}

function multiplyCost02() {
    var txtFirstNumberValue = document.getElementById('sqIn1').value;

    var result = parseInt(txtFirstNumberValue) * 0.05;
    if (!isNaN(result)) {
        document.getElementById('2clr-Cost').value = result.toFixed(2);
    }
}

function sumJob() {
    var txtFirstNumberValue = document.getElementById('1clr-Cost').value;
      var txtSecondNumberValue = document.getElementById('2clr-Cost').value;

    var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
    if (!isNaN(result)) {
        document.getElementById('JobCost').value = '$'+ result.toFixed(2);
    }
}

1 个答案:

答案 0 :(得分:1)

您正在执行两个parseInt操作并将它们添加到一起,然后获取该元素。 parseInt将删除小数点后的两位数字。

<强>更新

尝试parseFloat