web api c#为带有角度的long数据类型返回另一个值
Posted
技术标签:
【中文标题】web api c#为带有角度的long数据类型返回另一个值【英文标题】:web api c# returns another value for data type long with angular 【发布时间】:2021-12-25 02:16:51 【问题描述】:我正在从 Angular 客户端向 web api .net Framework 4.7 发起 http get 调用
我有一个服务向我返回一个带有值的对象,包括一个“long”类型的属性,问题是当我在 api 中调试响应时,它返回一个数字 9997773333333335(这是我所期望的)但是当我进入浏览器时将其翻译为 9997773333333336
总结:
long 数据类型,在数据库中保持为 9997773333333335 但在前面收到响应时,它以 9997773333333336 的形式到达。
有人可以向我解释为什么会这样吗?你在做四舍五入吗?我该如何避免呢?
事实:DB 中的字段是 Bigint。
后端响应:
前端结果:
【问题讨论】:
这个数字超过了Number.MAX_SAFE_INTEGER。更多here 【参考方案1】:问题是您使用的数字大于Number.MAX_SAFE_INTEGER
。 javascript 无法使用 Number
类型准确地表示这么大的整数,因此您所看到的错误是意料之中的。
尝试将这些值作为string
s 而不是long
s 传递给前端。如果您需要在客户端对其进行任何计算,请先将这些字符串转换为BigInts。
【讨论】:
以上是关于web api c#为带有角度的long数据类型返回另一个值的主要内容,如果未能解决你的问题,请参考以下文章
当 Api 返回响应时,如何以角度显示“登录失败。请重试”消息?