2013-06-26 34 views
0

我使用jQuery $ .ajax來調用Web服務。 結果是帶有大量數據和大量小數的JSON數據。 在提琴手,在JSON結果顯示爲jQuery獲得JSON結果與大小數不能正常工作

-1.34337916794034E + 18

當我在使用的Fiddler TextView的我發現了(右)導致

-1343379167940340394.0

我的ajax功能:

 
$.ajax({ 
    type: method, 
    beforeSend: function (request) { 
     ShowLoader(); 
     request.setRequestHeader(requestHeaderName, requestHeaderValue); 
    }, 
    accepts: "gzip, deflate", 
    url: methodUrl, 
    contentType: "application/json; charset=utf-8", 
    crossDomain: true, 
    data: jsonParams, 
    dataType: 'json', 
    success: function (responseData) { 
     return callback(responseData); 
    }, 
    complete: function() { 
     HideLoader(); 
    } 
}); 

這是爲什麼?這是JSON/jQuery中的問題嗎? 該web應用程序也使用ASP.NET(Forms)。

請幫忙。

+0

使用浮點數一方面可以使用內部數據,另一方面使用_visual_表示。它是否顯示爲「-1343379167940340394.0」或「-1.34337916794034E + 18」取決於浮點到字符串會話的實現。這並不一定意味着他們的內部表現是不同的。另一方面,這也意味着如果你打印兩個浮標並且它們都顯示'2'它們不一定相等。 –

回答

1

問題是,JavaScript的浮點數系統無法工作(至少不是很準確)與一個很長的數字。您可以嘗試使用庫,如Big.js

+0

浮點不適用於小數計算(所有語言,不限於js),因爲無論您的數字是大還是小,總會有不準確的地方。 –