为了防止后端返回出来的流量字符个数超过16位,所以使用到bignumber.js进行加减乘除的计算;
https://mikemcl.github.io/bignumber.js/ bignumber.js的api
正常的其实应该拿1024进行计算,我们后端底层是拿1000进行处理的,所以需要跟后端计算方式统一下
,import { BigNumber } from "bignumber.js";
//转化流量
export function conver(limit) {
var size = "";
const x = new BigNumber(limit);
if (x.lt(0.1 * 1000)) {
//如果小于0.1KB转化成B
size = x.toFixed(2) + "B";
} else if (x.lt(0.1 * 1000 * 1000)) {
//如果小于0.1MB转化成KB
size = x.div(1000).toFixed(2) + "K";
} else if (x.lt(0.1 * 1000 * 1000 * 1000)) {
//如果小于0.1GB转化成MB
size = x.div(1000 * 1000).toFixed(2) + "M";
} else {
//其他转化成GB
size = x.div(1000 * 1000 * 1000).toFixed(2) + "G";
}
var sizestr = size + "";
var len = sizestr.indexOf(".");
var dec = sizestr.substr(len + 1, 2);
if (dec == "00") {
//当小数点后为00时 去掉小数部分
return sizestr.substring(0, len) + sizestr.substr(len + 3, 2);
}
return sizestr;
}