【问题标题】:Why is my value rounded (up or down)为什么我的值四舍五入(向上或向下)
【发布时间】:2015-11-26 08:08:28
【问题描述】:

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

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

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

现在我在调试时注意到 "&lt;%# Eval("BATCH_NO") %&gt;" 的值是 635838861561284500 而不是 635838861561284513。

但值在网格中正确显示!!

谁能解释为什么会这样?

【问题讨论】:

    标签: javascript c# asp.net decimal aspxgridview


    【解决方案1】:

    因为 JavaScript 的数字是 IEEE-754 double-precision floating point 数字,它有 53 位来存储数字的未缩放值(其他位用于指数),它转换为 16 位十进制数字以下的精度。它们的最大“安全”整数值(不会丢失精度的整数值)是 9007199254740991。您的 635838861561284513 比那个大很多

    如果你想在 JavaScript 之间传递那个数字,最好把它保存在一个字符串中。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      相关资源
      最近更新 更多