java里面long字节数,Java_Android 将字节数(long) 转化为KB,MB

之前遇到了字节转化对应KB/MB的问题,这里记录一下,以便学习交流,不足之处,敬请指出.废话不多说,上代码.

private String getFormatSize(long size) {

//这里限定了输入 1T以内 不包括1T

if (size <= 0 || size >= 1024 * 1024 * 1024) {

throw new RuntimeException("输入异常");

}

//这里可能出现转换异常

double dSize = 0;

try {

dSize = size;

} catch (Exception e) {

e.printStackTrace();

}

//除数因子

double divideBasic = 1024;

if (size < 1024) { //1kb以内

if (size < 1000) {

return String.valueOf(size + "B");

} else { //大于1000B,转化为kb,基于用户习惯

return String.format("%.2f", dSize / divideBasic) + "K";

}

} else if (size < 1024 * 1024) { //1M以内

if (size < 1024 * 1000) {

return String.format("%.2f", dSize / divideBasic) + "K";

} else {//大于1000Kb,转化为M

return String.format("%.2f", dSize / divideBasic / divideBasic) + "M";

}

} else { //1TB以内

if (size < 1024 * 1024 * 1000) {

return String.format("%.2f", dSize / divideBasic / divideBasic) + "M";

} else {//大于1000Mb,转化为T

return String.format("%.2f", dSize / divideBasic / divideBasic / divideBasic) + "T";

}

}

}

有几个问题需说明:

1,数值大于1T的没做处理,基本满足日常开发对转换的需求

2,"%.2f" 其中.2表示保留小数点后两位,如果是.3则保留3位,以此类推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值