アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

ファイルサイズ(バイト)をKB、MB…に変換する関数

タイトル通り。
jQuery前提、IEでも動きます。

function formatSize(byte) {
	const base = 1024;
	const unit_list = ['B', 'KB', 'MB', 'GB'];
	let res = '';
	$(unit_list).each(function(exp, unit){
		byte_unit = Math.pow(base, exp);
		if (byte < byte_unit * base) {
			res = Math.round(byte / byte_unit) + unit;
			return false;
		}
	});
	return res;
}


コール例

formatSize(1024); // "1KB"

ロジックはまあ特に難しいこともなく、
1024より小さいときはそのまま返す(なんか計算してるけどbyte_unitは1になので実質そのまま)、
1024^2より小さいときは1024^1で割る、
1024^3より小さいときは1024^2で割る…という調子。
TBにも対応するとか逆にGBはいらないとかあればunit_listに手を加えるだけでOK。
KBやMBに変換するときに小数点第何位まで出したいとかあれば要改造。