java 文件大小计算:
public static String formatFileSize(long size) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
String wrongSize = "0B";
if (size == 0) {
return wrongSize;
}
if (size < 1024) {
fileSizeString = df.format((double) size) + "B";
} else if (size < 1048576) {
fileSizeString = df.format((double) size / 1024) + "KB";
} else if (size < 1073741824) {
fileSizeString = df.format((double) size / 1024) + "MB";
} else if (size < 1099511627776L) {
fileSizeString = df.format((double) size / 1073741824) + "GB";
} else if (size < 1125899906842624L) {
fileSizeString = df.format((double) size / 1099511627776L) + "TB";
} else {
fileSizeString = df.format((double) size / 1125899906842624L) + "PB";
}
return fileSizeString;
}
相关:
计算机存储信息的最小单位,称之为位(bit,又称比特),位 bit (比特)(BinaryDigits):存放一位二进制数,即 0 或 1,b是最小的存储单位。
存储单位一般用B,KB,MB,GB,TB,EB,ZB,YB,BB来表示;
字节 byte:8个二进制位为一个字节(B),B是最常用的单位。
- 1B=8b
- 1KB (Kilobyte千字节)=1024B
- 1MB(Megabyte 兆字节简称“兆”)=1024KB
- 1GB (Gigabyte 吉字节又称“千兆”)=1024MB
- 1TB (Trillionbyte万亿字节太字节)=1024GB
- 1PB(Petabyte 千万亿字节拍字节)=1024TB
- 1EB(Exabyte百亿亿字节艾字节)=1024PB
- 1ZB(Zettabyte 十万亿亿字节 泽字节)= 1024 EB
- 1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024ZB
- 1BB (Brontobyte一千亿亿亿字节)= 1024 YB
注:其中1024=2^10 ( 2 的10次方),“兆”为百万级数量单位。
整型取值范围:
java.lang.Integer
取值范围:
最大值:2147483647
最小值:-2147483648
java.lang.Long
取值范围:
最大值:9223372036854775807L
最小值:-9223372036854775808L
更多类型可查看:Java 平台API 规范
如果想计算超出 Long
的取值范围的数值,则可以使用 BigInteger
或者BigDecimal
BigInteger:
public static void main(String[] args) {
BigInteger b = new BigInteger("1125899906842624");
BigInteger b1 = new BigInteger("1024");
//1.加法
System.out.println("加法:" + b.add(b1));
//2.减法
System.out.println("减法:" + b.subtract(b1));
//3.乘法
System.out.println("乘法:" + b.multiply(b1));
//4.除法
System.out.println("除法:" + b.divide(b1));
//大小比较
//等于
if (b.compareTo(b1) == 0) System.out.println("b == b1");
//大于
else if (b.compareTo(b1) > 0) System.out.println("b > b1");
//小于
else if (b.compareTo(b1) < 0) System.out.println("b < b1");
}
BigDecimal:
public static void main(String[] args) {
BigDecimal b = new BigDecimal("1125899906842624");
BigDecimal b1 = new BigDecimal("1024");
//1.加法
System.out.println("加法:" + b.add(b1));
//2.减法
System.out.println("减法:" + b.subtract(b1));
//3.乘法
System.out.println("乘法:" + b.multiply(b1));
//4.除法
System.out.println("除法:" + b.divide(b1));
//大小比较
//等于
if (b.compareTo(b1) == 0) System.out.println("b == b1");
//大于
else if (b.compareTo(b1) > 0) System.out.println("b > b1");
//小于
else if (b.compareTo(b1) < 0) System.out.println("b < b1");
BigDecimal bm=new BigDecimal("1.345");
System.out.println("保留两位小数(四舍五入):"+bm.setScale(2,BigDecimal.ROUND_HALF_UP));
}