Caused by: java.util.IllegalFormatConversionException: f != java.lang.Long

Exception:

Caused by: java.util.IllegalFormatConversionException: f != java.lang.Long

Cause:

    private void updateSizeInfo() {
        long size = FileHelper.getDirSize(Objects.requireNonNull(getContext()).getExternalFilesDir(null));
        LogUtils.d(size);
        String strSize = size > 1 << 20 ? PalmUtils.formatString(R.string.cache_size_mb, size >> 20)
                : PalmUtils.formatString(R.string.cache_size_kb, size >> 10);
        getBinding().amiCache.setFooter(strSize);
    }

I use the code above to calculate the size of memory used, notice that I used the >> operation, here i want to write down something about the difference between >> and /.

Of course that you can use size * 1.0 / 1024 / 1024 to transfer bytes to MB, the goodness is that we can get the float result, the size >> 20 is more efficient but can only get the long result.

That is the problem, if I used >> and %1.f then i will get the exception.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值