2017-08-31 71 views
0

我在JSONResult中傳遞來自控制器的確切Id(即123456789123456.99),但是當我在AJAX響應中獲取值時,我得到Id(即123456789123456.98)。解析十進制值問題

我在解析數據時觀察到了JavaScript中的奇怪行爲。請看下面的圖片。任何人都可以請幫我在這裏通過JSON解析後得到相同的ID。

enter image description here

+0

那不是一個字符串做:

但是,您可以通過發送號碼作爲像這樣的字符串解決這個限制? – Teemu

+0

歡迎來到浮點數的世界,..它也不是一個JSON問題..爲了更好地處理大數字數,在JavaScript中有許多BCD實現,您可能需要查看。 – Keith

+0

我認爲這與浮點不準確有關,請看https://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples – Mike

回答

2

Id值過大。 JavaScript對數字使用雙精度浮點數,並且它們具有大約15位的精度。 JavaScript可以可靠保存的最大整數是2^51。這就是爲什麼當你解析的時候這個值會四捨五入。

var res = '{"Id":"123456789123456.99"}'; 
+0

我不想在我的模型中添加字符串的新屬性。還有其他解決方案嗎? – Ronak