2017-08-31 68 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