首页 > 解决方案 > web api c#为带有角度的long数据类型返回另一个值

问题描述

我正在从 Angular 客户端向 web api .net Framework 4.7 发起 http get 调用

我有一个服务向我返回一个带有值的对象,包括“long”类型的属性,问题是当我在 api 中调试响应时,它返回一个数字 9997773333333335 (这是我所期望的)但是当我得到浏览器将其转换为 9997773333333336

总之:

long 数据类型,在数据库中它保持为 9997773333333335 但在前面收到响应时,它以 9997773333333336 的形式到达。

有人可以向我解释为什么会这样吗?你在做四舍五入吗?我怎么能避免呢?

事实:数据库中的字段是 Bigint。

后端响应:

后端响应

前端结果:

前端结果

标签: javascriptc#

解决方案


问题是您使用的数字大于Number.MAX_SAFE_INTEGER. JavaScript 无法使用该Number类型准确地表示这么大的整数,因此您所看到的错误是可以预料的。

string尝试将这些值作为s 而不是s传递给前端long。如果您需要在客户端对它们进行任何计算,请先将这些字符串转换为BigInt


推荐阅读