java kb mb gb 转换,java – 动态地将KB转换为MB,GB,TB

public String size(int size){

String hrSize = "";

int k = size;

double m = size/1024;

double g = size/1048576;

double t = size/1073741824;

DecimalFormat dec = new DecimalFormat("0.00");

if (k>0)

{

hrSize = dec.format(k).concat("KB");

}

if (m>0)

{

hrSize = dec.format(m).concat("MB");

}

if (g>0)

{

hrSize = dec.format(g).concat("GB");

}

if (t>0)

{

hrSize = dec.format(t).concat("TB");

}

return hrSize;

}

这是一种应返回GB,MB,KB或TB大小的方法.输入值以KB为单位.

例如1245的结果应该像1.21MB,但我得到的是1.00MB.

解决方法:

您正在执行整数除法.所以除法的结果也是整数.小数部分被截断.

so, 1245 / 1024 = 1

将您的部门改为浮点部门: –

double m = size/1024.0;

double g = size/1048576.0;

double t = size/1073741824.0;

此外,您的比较是错误的.你应该用1进行比较.

if (m > 1), if (t > 1), if (g > 1)

理想情况下,我会将您的比较改为: –

if (t > 1) {

hrSize = dec.format(t).concat("TB");

} else if (g > 1) {

hrSize = dec.format(g).concat("GB");

} else if (m > 1) {

hrSize = dec.format(m).concat("MB");

} else {

hrSize = dec.format(size).concat("KB");

}

您需要先与较高的单位进行比较,然后再移到较低的单位.

标签:operation,java,int,double,division

来源: https://codeday.me/bug/20191005/1856846.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值