stuppid_bot

Приводим размер файла в понятный для человека вид

Apr 2nd, 2013
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // первый пришедший в голову вариант решения
  2. var fileSizeUnits = ['TB', 'GB', 'MB', 'kB', 'B'];
  3.  
  4. function fileSize(size) {
  5.     var i = fileSizeUnits.length, temp;
  6.  
  7.     while (--i) {
  8.         temp = size / 1024
  9.         if (temp < 1) break;
  10.         size = temp;
  11.     }
  12.    
  13.     return size.toFixed(2) * 1 + ' ' + fileSizeUnits[i];
  14. }
  15.  
  16. // решение без цикла
  17. function formatSize(size) {
  18.     var i = 0,
  19.         base = 1024,
  20.         prefixes = ' KMGTPEZY';
  21.    
  22.     if (size < 0) {
  23.         throw 'Negative';
  24.     }
  25.     else if (size >= base) {
  26.         i = Math.floor( Math.log(size) / Math.log(base) );
  27.         if (i >= prefixes.length) throw 'Too large';
  28.         size = ( size / Math.pow(base, i) ).toFixed(2) * 1 + ' ';
  29.     }
  30.    
  31.     return size + prefixes[i] + 'B';
  32. }
Advertisement
Add Comment
Please, Sign In to add comment