js将 内存单位转换成对应的MB、GB,将个数单位转换成对应的万、百万、千万、亿
- 不足GB的,取整数
- 超过GB的,四舍五入保留一位小数。
- 超过万级,保留一位小数。
// ifSQLmemory 是否是内存单位 true、false
function unitChange(num, ifSQLmemory){
num = parseFloat(num);
if(ifSQLmemory){
if(num ||num == 0){
if(num >=1024){
return Math.round(num/1024 * 10) / 10 +"GB";
}else{
return Math.round(num) +"MB";
}
}else{
return "--";
}
}else{
if(num ||num == 0){
if(num >=100000000){
return Math.round(num/100000000 * 10) / 10 +"亿个";
}else if(num >=10000000){
return Math.round(num/10000000 * 10) / 10 +"千万个";
}else if(num >=1000000){
return Math.round(num/1000000 * 10) / 10 +"百万个";
}else if(num >=10000){
return Math.round(num/10000 * 10) / 10 +"万个";
}else{
return Math.round(num) +"个";
}
}else{
return "--";
}
}
}
小结点:
parseFloat
判断下是不是个数字,非数字的NaN,布尔值为false。
内存的比例是 1024
。
js if
条件语句防止跳楼
和冗余的条件参数
。
Math.round()
方法:四舍五入,取得是整数
,不能精确小数位
。
Number.toFixed()
方法,能保留小数点后面的指定位数
,但是有这种情况,21.0,应该转换成21。
如何使用Math.round()保留1位小数?
先把数据扩大10倍
,四舍五入
后在缩小10倍
即可。
Math.round(num/10000 * 10) / 10
- 同理,保留
2
位小数,就扩大100倍
。
网友评论