jq应用总结(二)

(一)问题提出

这次说说进制转换问题

因为jq是弱语言类型,所以你会发现,他会自动转换进制,如当出现以0开头的数据时,它就会出现自动八进制转十进制

例:01111(八进制)   ->    585(十进制)

情景分析:我有这么一个函数 数据是数据库中取得的值01111

代码中呈现按道理来说是:getValue(01111);

但是事实是 getValue(585);

我们发现他直接将01111转换为相对应的十进制585

这样我们的bug就出来了所以,针对这样的现象我来说下个人的解决办法

(二)问题解决


<span style="font-family:SimHei;font-size:18px;"><span style="white-space:pre">			</span>function getValue(stationids){
					stationid ='0' + stationids.toString(8);
	 			}
</span>

解释一下 toString()可以转化你的进制后面参数可以是2  8  10 16 就是说可以将10进制转换为八进制

然后利用jq弱语言的特点 使用字符串拼接就可以的到我们想要的数字结果了

(三)问题扩展(一下纯属复制粘贴,给自己备忘)

1.各种转进制

<span style="font-family:SimHei;font-size:18px;">//10进制转为16进制
(10).toString(16) // =>"a"
//8进制转为16进制
(012).toString(16) // =>"a"
//16进制转为10进制
(0x16).toString(10) // =>"22"
//16进制转为8进制
(0x16).toString(8) // =>"26"
//10进制转为2进制 //=>
(1111).toString(2) // => "10001010111"
//8进制转为2进制 //=>
(01111).toString(2) //=>"1001001001"
//16进制转为2进制 //=>
(0x16).toString(2) // => "10110"</span>

2.转十进制


<span style="font-family:SimHei;font-size:18px;">//2进制到10进制;
parseInt(10,2) //=>2
//2进制到10进制;
parseInt(100,2) //=>4
//16进制到10进制
parseInt(12, 16) //=>18
//8进制到10进制
parseInt(12,8); //=>10</span>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值