2015-11-26 87 views
2

在我的實體框架模型(甲骨文),我有一個包含如下柱 enter image description here爲什麼我的值四捨五入(向上或向下)

現在的表。我使用一個asp.net webforms datagrid來查看數據。在一個階段,這個列中的值是635838861561284513.當我單擊此網格上的自定義鏈接時,我確實(理論上)將此值作爲url上的參數發送。該值被添加到URL,如下所示:

<a href="javascript:Cover(<%# Eval("BATCH_NO") %>);">View</a> 

現在我注意到在該值"<%# Eval("BATCH_NO") %>"來通過爲635838861561284500調試,不635838861561284513.

但該值顯示正確地在網格!

任何人都可以解釋爲什麼發生這種情況?

回答

6

因爲JavaScript的數字是數字IEEE-754 double-precision floating point,其具有53位來存儲數(其它位是指數),其轉換爲的精度略低於16對十進制數的標度值。他們的最大「安全」整數值(不會丟失精度的整數值)是9007199254740991.您的 635838861561284513是大得多。

如果要將該數字傳遞給JavaScript並將其傳遞給JavaScript,最好將其保留在字符串中。