javascript - web api c#为带有角度的long数据类型返回另一个值
问题描述
我正在从 Angular 客户端向 web api .net Framework 4.7 发起 http get 调用
我有一个服务向我返回一个带有值的对象,包括“long”类型的属性,问题是当我在 api 中调试响应时,它返回一个数字 9997773333333335 (这是我所期望的)但是当我得到浏览器将其转换为 9997773333333336
总之:
long 数据类型,在数据库中它保持为 9997773333333335 但在前面收到响应时,它以 9997773333333336 的形式到达。
有人可以向我解释为什么会这样吗?你在做四舍五入吗?我怎么能避免呢?
事实:数据库中的字段是 Bigint。
后端响应:
前端结果:
解决方案
问题是您使用的数字大于Number.MAX_SAFE_INTEGER
. JavaScript 无法使用该Number
类型准确地表示这么大的整数,因此您所看到的错误是可以预料的。
string
尝试将这些值作为s 而不是s传递给前端long
。如果您需要在客户端对它们进行任何计算,请先将这些字符串转换为BigInt。
推荐阅读
- jquery - mmenu-js 菜单在我加载页面之前不起作用,turbolinks 不会加载 mmenu-js
- reactjs - React JS:如何将值传递给其他组件 onSubmit
- c# - 添加数据时发生未处理的异常
- spring-boot - JavaMail Spring boot 属性不识别属性
- android - 从 ARcore 会话获取 RGB 和深度图像时出现 MIssingGlContextApplication 异常
- html - CSS在文本附近写入元素标签
- python - Itterating through a list of objects from custom made class
- jmeter - 如何在jmeter中单击pop uo URL上的按钮而不记录脚本,以便将数据保存在应用程序中
- javascript - $ 不是函数(在 JQuery 中发生错误)
- python-3.x - Selenium - 动态改变ip