3

jquery ajaxを使用して以下のようにjson文字列を取得し、xhtmlページに表示しています

{"pID":"T1","avBal":147765035.20,"accBalance":147713417.00}

私はこのように書かれたjqueryを持っています、

          $.ajax({

              type : "GET",
              url : '../accData.xhtml',
              dataType : "json",
              async : true,
              cache : false,

              success: function(data) {
                        if(data!=null){
                          $("#accBalance").text(data.accBalance);
                                      $("#avBal").text(data.avBal);
                        }

          },
              error : function() {
          }
         });

ここでの問題は、「avBal」が 147765035.2 として表示され、「accBalance」がゼロなしで 147713417 として表示され、値の末尾にあるすべてのゼロが自動的に切り捨てられることです。jQueryまたはjsonの制限ですか、それとも何か他のことが間違っていますか?

4

2 に答える 2

1

jQueryやJSONのせいではなく、JavaScriptのせいです。JavaScriptは大まかに型付けされており、123と1.23はどちらも数値型です。精度が重要な場合は、それらの値を文字列として扱います。

必要に応じて値をフォーマットする気の利いた関数を次に示します。

function toFixed(value, precision) {
    var power = Math.pow(10, precision || 0);
    return String(Math.round(value * power) / power);
}
于 2012-09-13T10:02:10.210 に答える
1

スクリプトを次のように置き換えてください。

$.ajax({

              type : "GET",
              url : '../accData.xhtml',
              dataType : "json",
              async : true,
              cache : false,

              success: function(data) {
                        if(data!=null){
                                //chage is here...
                                 $("#accBalance").text(parseFloat(data.accBalance).toFixed(2));
                                 $("#avBal").text(parseFloat(data.avBal).toFixed(2));
                        }

          },
              error : function() {
          }
         });
于 2012-09-13T12:56:38.420 に答える