Javascript 为什么我的值四舍五入(向上或向下)

Javascript 为什么我的值四舍五入(向上或向下),javascript,c#,asp.net,decimal,aspxgridview,Javascript,C#,Asp.net,Decimal,Aspxgridview,在我的实体框架模型(来自oracle)中,我有一个包含以下列的表 现在。我使用asp.net webforms数据网格查看数据。在某一阶段,此列中的值为635838861561284513。理论上,当我点击这个网格上的自定义链接时,我会将这个值作为url上的一个参数发送出去。该值将添加到url,如下所示: <a href="javascript:Cover(<%# Eval("BATCH_NO") %>);">View</a> 现在,我在调试时注意到,

在我的实体框架模型(来自oracle)中,我有一个包含以下列的表

现在。我使用asp.net webforms数据网格查看数据。在某一阶段,此列中的值为635838861561284513。理论上,当我点击这个网格上的自定义链接时,我会将这个值作为url上的一个参数发送出去。该值将添加到url,如下所示:

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

现在,我在调试时注意到,
的值是635838861561284500,而不是635838861561284513

但该值在网格中显示正确


有人能解释为什么会发生这种情况吗?

因为JavaScript的数字是数字,它有53位存储数字的无标度值(其他位表示指数),转换为精度略低于16位的十进制数字。它们的最大“安全”整数值(不会丢失精度的整数值)为9007199254740991。你的 635838861561284513比这个大得多

如果您想在JavaScript之间传递该数字,最好将其保存在字符串中