0

以下の関数では、num.toFixed(2); をどこに含めますか? 「合計」の値を小数点第 2 位まで表示するには (価格)?

function calculate_total(id) {
   var theForm = document.getElementById( id )
   total = 0;
   if (theForm.toyCar.checked) {
      total += parseFloat(theForm.toyCar.value);
   } 
   theForm.total.value = total;
   theForm.GrandTotal.value = total + (total*0.18);
}

これは出力です:

<input type="button" name="CheckValue" value = "Calculate cost" onclick="calculate_total(this.form.id)" />
&nbsp;
Total: <input type="text" name="total" id="total" size="10" readonly="readonly" />
4

3 に答える 3

0

両方の数値が小数点以下 2 桁にフォーマットされるように、2 か所を変更します。

function calculate_total(id) {
    var theForm = document.getElementById( id )
    total = 0;
    if (theForm.toyCar.checked) {
        total += parseFloat(theForm.toyCar.value);
    } 
    theForm.total.value = total.toFixed(2);
    theForm.GrandTotal.value = (total + (total*0.18)).toFixed(2);
}
于 2013-02-25T14:57:41.870 に答える
0
theForm.total.value = total.toFixed(2);
theForm.GrandTotal.value = (total + (total*0.18)).toFixed(2);
于 2013-02-25T14:55:43.493 に答える
-1

ではnum.toFixed()num影響を与えたい実際の数値式です。toFixedその式で関数実行します。

したがって、ここでは次のように適用できますtotal + (total*0.18)

theForm.GrandTotal.value = (total + (total*0.18)).toFixed(2);

ただし、しないでください。ここで値を切り捨てないでください。精度の量を大幅に制限することで、コードに丸めエラーが発生する可能性があります。

これは意図的なものである可能性があり (計算でサブペニー値を処理する方法に応じて)、そうである場合は、通常のtotal値にも適用する必要があります。

theForm.total.value = total.toFixed(2);

それ以外の場合は、値を出力するときにこのフォーマットを適用してください! つまり、他の場所:

alert(theForm.GrandTotal.value.toFixed(2));
// (or something other than `alert`)
于 2013-02-25T14:56:14.830 に答える