
发表日期: 2021-05-10 14:48:54 浏览次数:122
淮滨微信公众号开发【淮滨网络推广】淮滨建站、淮滨网站维护、淮滨网页制作、淮滨微信小程序代运营公司

淮滨县,河南省信阳市下辖县,位于信阳市东北部,地处东经115°11′—115°35,北纬32°15′—32°38'之间,总面积1209平方公里,地处北亚热带与暖温带气候过渡地带。 [1] 截至2020年6月,淮滨县辖4个街道、5个镇、10个乡, [2] 县政府驻滨湖街道。 [3] 截至2019年末,淮滨县总人口78.47万。 [4]
淮滨因位于淮河之滨而得名。1952年8月经国务院批准,正式设立淮滨县。 [1] 1962年10月20日,合并于息县的原淮滨行政区域和固始县的原淮滨县期思、张庄两个区的行政区域为淮滨县的行政区域。 [5] 2019年3月,淮滨县入选第一批革命文物保护利用片区分县名单。 [6] 淮滨县产业集聚区是河南省首批确定的175个产业集聚区之一。造船业是淮滨县传统优势产业,也是纳入河南省“十一五”规划予以重点支持的装备制造业。 [7] 2020年2月26日,河南省人民政府批准淮滨县退出贫困县,正式脱贫摘帽。 [8] 淮滨县境内有期思古城、东西湖风景区、淮滨淮南湿地自然保护区等著名景点。
2019年,淮滨县生产总值225.92亿元,增长7.9%。其中,第一产业增加值41.26亿元,增长1.8%;第二产业增加值91.70亿元,增长8.9%;第三产业增加值92.97亿元,增长10.7%,三次产业结构18.3:40.6:41.1。 [4]
想必,很多人都遇到过关于后端返回数据中的大数字问题。明明你写的代码没有问题,然后后台的接口也没问题,但是你调用接口返回的数据就有误。 JavaScript 能够准确表示的整数范围在-2^53到 2^53之间(不含两个端点),超过这个范围,无法精确表示这个值,这使得 JavaScript 不适合进行科学和金融方面的精确计算。这个问题主要是后端数据类型是long类型时。数字精准度问题。
Math.pow(2, 53) // 90071992547409929007199254740992 // 90071992547409929007199254740993 // 9007199254740992Math.pow(2, 53) === Math.pow(2, 53) + 1// true
超过2的53次方之后,就不精准了。
ES6 引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。
Number.MAX_SAFE_INTEGER === Math.pow(2, 53) - 1// trueNumber.MAX_SAFE_INTEGER === 9007199254740991// trueNumber.MIN_SAFE_INTEGER === -Number.MAX_SAFE_INTEGER// trueNumber.MIN_SAFE_INTEGER === -9007199254740991// true
上面代码中,可以看到 JavaScript 能够精确表示的极限。
关于如何解决这个问题,方案有两种。
后端解决,后端将数字转成字符串。这个对于前端来说是最简单的了,因为超长的数字在浏览器中确实存在展示精度问题,这个后端解决也是领所应当。
前端通过json-bigint 是一个第三方包来解决
npm i json-bigint
下面是使用它的一个简单示例。
const jsonStr = '{ "art_id": 1245953273786007552 }'console.log(JSON.parse(jsonStr)) // 1245953273786007600// JSON.stringify()// JSONBig 可以处理数据中超出 JavaScript 安全整数范围的问题console.log(JSONBig.parse(jsonStr)) // 把 JSON 格式的字符串转为 JavaScript 对象// 使用的时候需要把 BigNumber 类型的数据转为字符串来使用console.log(JSONBig.parse(jsonStr).art_id.toString()) // 1245953273786007552console.log(JSON.stringify(JSONBig.parse(jsonStr)))console.log(JSONBig.stringify(JSONBig.parse(jsonStr))) // 把 JavaScript 对象 转为 JSON 格式的字符串json-bigint 会把超出 JS 安全整数范围的数字转为一个 BigNumber 类型的对象,对象数据是它内部的一个算法处理之后的,我们要做的就是在使用的时候转为字符串来使用。
我们可以结合axiso来使用,Axios 提供了自定义处理原始后端返回数据的 API:transformResponse 。
import axios from 'axios'import jsonBig from 'json-bigint'var json = '{ "value" : 9223372036854775807, "v2": 123 }'console.log(jsonBig.parse(json))const request = axios.create({
baseURL: '你接口的基础路径', // 接口基础路径
// transformResponse 允许自定义原始的响应数据(字符串)
transformResponse: [function (data) {
try {
// 如果转换成功则返回转换的数据结果
return jsonBig.parse(data)
} catch (err) {
// 如果转换失败,则包装为统一数据格式并返回
return {
data }
}
}]})export default request把axiso封装一下,用来处理此类的大数据数值问题。
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878