在Java中将字节转换为兆字节为零

时间:2018-11-01 07:14:59

标签: java

在Java中尝试将字节转换为兆字节时遇到了一些问题。我试图做的是:

        long inodeSpace = 100000;
        long MEGABYTE = 1024L * 1024L;
        long inodeSpaceInMb = inodeSpace / MEGABYTE;
        System.out.println("INODE SPACE " + inodeSpace);
        System.out.println("INODE MB " + inodeSpaceInMb);

我试图打印出inodeSpaceMb,但是我得到0。为什么这样?

2 个答案:

答案 0 :(得分:2)

将两者之一投射到double中,并将结果存储在double中。喜欢:

double inodeSpaceInMb = (double) inodeSpace / MEGABYTE;

答案 1 :(得分:0)

如果在转换时还希望精确到小数点后一位,则可以执行以下操作:

 public double bytesToMegabytes(long byteValue, int precision) {
     if (precision < 0) {
         throw new IllegalArgumentException("Precision can not be less than 0!");
     }
     double mbValue = byteValue * 0.000001;
     BigDecimal bigDec = new BigDecimal(mbValue);
     bigDec = bigDec.setScale(precision, RoundingMode.HALF_UP);
     return bigDec.doubleValue();
}