1

予想される合計と実際の合計があるフォームを作成しています。最後のフィールドには、フィールド値の違いが表示されます。したがって、コードが行うべきことは、フィールドのデータを比較した後に負または正の数を表示することであり、これらの基本数が変更されると結果も変更されるはずです。これが私がこれまでに持っているものです:

この上にさらにコードがあり、下のコードは正常に機能しています。数値が負か正かを示していないだけです。

var difference = ztotal - total;

ここで問題が発生します。コードの最初の部分は正常に機能し、負の数を示していますが、2番目の部分は「+-」を追加しています。正しい結果を反映するためにztotalまたはtotalの金額が変更された場合は、プラスまたはマイナスを削除する必要があります。

  if(ztotal > total){
    $('#difference').val(parseFloat(difference).toFixed(2) * -1);
  }
  else {
    $('#difference').val('+' + parseFloat(difference).toFixed(2));

}

4

1 に答える 1

1

コードにはいくつかの問題があります。

  1. この関数は、型の変数を必要なもの(この場合はfloat)にparseFloat変換します。Stringその関数の使用を破棄するだけです
  2. 単に数値を出力するだけでなく、一方が他方よりも大きいかどうかを確認するのはなぜですか。例えば:

    var difference = total - ztotal;
    $("#difference").val((difference > 0 ? "+" : "") + difference.toFixed(2));
    

この例では、省略形のif-else構造を使用しています。それはこのように見える部分です:

    difference > 0 ? "+" : ""

つまり、変数differenceが0より大きい場合は「+」を書き込み、そうでない場合は「」(空白の文字列)を書き込みます。スペースを節約できます!

于 2013-03-14T16:39:47.327 に答える