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位,以此类推

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容