/*
* Copyright (c) 2012 Hai Bison
*
* See the file LICENSE at the root directory of this project for copying
* permission.
*/
package group.pals.android.lib.ui.filechooser.utils;
public class Converter {
/**
* Converts {@code size} (in bytes) to string. This tip is from:
* http://stackoverflow.com/a/5599842/942821
*
* @param size
* the size in bytes.
* @return e.g.:<br>
* - 128 B<br>
* - 1.5 KB<br>
* - 10 MB<br>
* - ...
*/
public static String sizeToStr(double size) {
if (size <= 0)
return "0 B";
final String[] _units = { "", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi" };
final Short _blockSize = 1024;
int digitGroups = (int) (Math.log10(size) / Math.log10(_blockSize));
if (digitGroups >= _units.length)
digitGroups = _units.length - 1;
size = size / Math.pow(_blockSize, digitGroups);
return String.format(String.format("%s %%sB", digitGroups == 0 ? "%,.0f" : "%,.2f"), size, _units[digitGroups]);
}// sizeToStr()
}