0

これはおそらく非常に簡単ですが、私の人生では、それを行う方法を理解することはできません. ですから、次のようになります: 多くのテキスト ボックスを含む大きなフォームがあります。これらはすべて通貨ベースであるため、小数点以下 2 桁に丸める必要があります。これらのテキスト ボックスの値はすべて、私が作成したいくつかの JavaScript 関数によって動的に生成され、.toFixed(2);小数点以下 2 桁まで切り上げる/切り下げるために使用できます。ただし、各テキストボックスの各値を計算した後にこれを配置する必要があるのは、面倒で繰り返しになります。すべてのテキストボックスをターゲットにして、すべてを小数点以下 2 桁に丸める単純な JavaScript (jQuery の場合もある) を作成するにはどうすればよいでしょうか?

助けてくれてありがとう:)

PSコードがなくて申し訳ありませんが、すべてが大きな関数に閉じ込められているため、実際に表示するものはありません. しかし、ここで私が本質的にやっていることは次のとおりです。

function workOutSomeVal() {
    // lots of code to work out values and stuff
    var finalValue = some mathematical equation to work out value;
    var anotherValue = a different value;
    $(".some-textbox").val((finalValue).toFixed(2));
    $(".another-textbox").val((anotherValue).toFixed(2));
} // my question is, how could I get rid of .toFixed(2) and put in a generic statement somewhere to target all the textboxes?
4

4 に答える 4

2

これを行う関数を呼び出すことができます。

function roundTextBoxes() {
    $("input[type=text]").val(function() {
        return (+this.value).toFixed(2);
    });
}

...そして、それらのいずれかが変更されるたびにそれを呼び出します。実際の例: http://jsbin.com/toyoc/1

おそらく、暗算を行うページを見ているユーザーは、それが完全に合計されていないことに気付くことがあることを意味します...

于 2014-08-09T23:39:19.600 に答える
1

「丸め可能」にしたいすべてのテキストボックスに共通のクラスを与えてから、そのクラスを使用して選択し、それぞれに丸めロジックを適用できます。

// let's say all the roundable textboxes have the class "roundable"
$('.roundable').each(function() {
  var value = // some mathematical equation to work out value
  $(this).val((value).toFixed(2));
});
于 2014-08-09T23:43:50.340 に答える
0

別のアプローチ:
計算の最後に value.toFixed(2) を入れてみませんか?

var finalValue = function(){
   // var value = some calculation  
   return value.toFixed();
}   

または - 他の場所で完全な値が必要な場合は、新しい関数を作成します。

var finalValueView = function(){
     finalValue().toFixed(2);       
} 

function workOutSomeVal() {
     // ...
     $(".some-textbox").val(finalValueView);
 }
于 2014-08-09T23:45:31.433 に答える
-3

使用するMath.round(num * 100) / 100

于 2014-08-09T23:41:24.063 に答える