0
我在JSONResult中传递来自控制器的确切Id(即123456789123456.99),但是当我在AJAX响应中获取值时,我得到Id(即123456789123456.98)。解析十进制值问题
我在解析数据时观察到了JavaScript中的奇怪行为。请看下面的图片。任何人都可以请帮我在这里通过JSON解析后得到相同的ID。
我在JSONResult中传递来自控制器的确切Id(即123456789123456.99),但是当我在AJAX响应中获取值时,我得到Id(即123456789123456.98)。解析十进制值问题
我在解析数据时观察到了JavaScript中的奇怪行为。请看下面的图片。任何人都可以请帮我在这里通过JSON解析后得到相同的ID。
的Id
值过大。 JavaScript对数字使用双精度浮点数,并且它们具有大约15位的精度。 JavaScript可以可靠保存的最大整数是2^51。这就是为什么当你解析的时候这个值会四舍五入。
var res = '{"Id":"123456789123456.99"}';
我不想在我的模型中添加字符串的新属性。还有其他解决方案吗? – Ronak
那不是一个字符串做:
但是,您可以通过发送号码作为像这样的字符串解决这个限制? – Teemu
欢迎来到浮点数的世界,..它也不是一个JSON问题..为了更好地处理大数字数,在JavaScript中有许多BCD实现,您可能需要查看。 – Keith
我认为这与浮点不准确有关,请看https://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples – Mike