Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2010, 13:23
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Перевод байтов
Здравствуйте !

Есть размер файла в байтах (6883008), подскажите как правильно перевести байты в удобный для чтения формат ?

Использовать что-то подобное этому ?
function conv_fsize($fsizeb) {
    $fsizekb = round($fsizeb / 1024, 1); //переводим в кб
    $fsizemb = round($fsizekb / 1024, 1); //переводим в мб
    $fsizegb = round($fsizemb / 1024, 1); //переводим в гб
    $fsizetb = round($fsizegb / 1024, 1); //переводим в тб

    if ($fsizekb <= 1024) {
        $fsize = $fsizekb . ' кб';
    } else
        if ($fsizekb >= 1024 and $fsizemb <= 1024) {
            $fsize = $fsizemb . ' мб';
        } else
            if ($fsizemb >= 1024 and $fsizegb <= 1024) {
                $fsize = $fsizegb . ' гб';
            } else {
                $fsize = $fsizetb . ' тб';
            }

            return $fsize;
}
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2010, 13:38
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

alert(~~((6883008/1024)/1024) + ' МБ')
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2010, 17:57
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

monolithed,
Я сделал так:

function conv_size(b){

	fsizekb = b / 1024;
    fsizemb = fsizekb / 1024;
	fsizegb = fsizemb / 1024;
	fsizetb = fsizegb / 1024;

	if (fsizekb <= 1024) {
        fsize = fsizekb.toFixed(3) + ' кб';
	} else if (fsizekb >= 1024 && fsizemb <= 1024) {
		fsize = fsizemb.toFixed(3) + ' мб';
	} else if (fsizemb >= 1024 && fsizegb <= 1024) {
		fsize = fsizegb.toFixed(3) + ' гб';
	} else {
		fsize = fsizetb.toFixed(3) + ' тб';
	}

    return fsize;

}


Это правильно ?
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2010, 18:46
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Я делаю так:
function formatSize(length){
	var i = 0, type = ['б','Кб','Мб','Гб','Тб','Пб'];
	while((length / 1000 | 0) && i < type.length - 1) {
		length /= 1024;
		i++;
	}
	return length.toFixed(2) + ' ' + type[i];
}

Последний раз редактировалось B@rmaley.e><e, 18.12.2010 в 18:57.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ExtJs - Перевод книги "Lerning ExtJs" MaXyC ExtJS 17 22.06.2012 17:41
Представление текста как массив байтов poorking Оффтопик 15 08.11.2010 10:00
перевод в число или как прибавить один anton_vek Общие вопросы Javascript 3 26.08.2010 13:07
Перевод стандарта ECMAScript Илья Кантор Общие вопросы Javascript 33 04.11.2008 23:32
Перевод числа из одной СС в другую News Общие вопросы Javascript 3 08.09.2008 09:46