public class beautifySizeUtil {
public static String beautifySize(double size) {
if (size <= 0) return "0";
final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + "" + units[digitGroups];
}
public static String beautifySize(long size) {
if (size <= 0) return "0";
final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + "" + units[digitGroups];
}
public static void main(String[] args) {
System.out.println(beautifySize(1));
System.out.println(beautifySize(2048));
System.out.println(beautifySize(200000));
System.out.println(beautifySize(200000000));
System.out.println(beautifySize(2000000000));
}
}
执行结果:



