Skip to content
This repository was archived by the owner on Dec 12, 2023. It is now read-only.

Commit 5740203

Browse files
committed
Merge pull request #29 from riga/master
Add number-to-bytesize.
2 parents e53e51c + aa34fb7 commit 5740203

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

number-to-bytesize/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Number to Bytesize
2+
3+
Convert a number to a string that represents a rounded size in bytes.
4+
5+
## Example
6+
7+
```
8+
f(156833213) // => '156.83 MB'
9+
f('8101') // => '8.1 kB'
10+
f(12331, 3) // => '12.331 kB'
11+
```
12+
13+
By [Riga](https://github.com/riga).
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var prefixes = { Byte: 0, kB: 3, MB: 6, GB: 9, TB: 12, PB: 15, EB: 18 };
2+
3+
var numberToBytesize = function(number, precision) {
4+
try {
5+
number = parseFloat(number);
6+
} catch(e) {
7+
return number;
8+
}
9+
10+
var target = 'Byte';
11+
var stop = false;
12+
Object.keys(prefixes).forEach(function(p) {
13+
if(stop)
14+
return;
15+
if( (number / Math.pow(10, prefixes[p])) >= 1 )
16+
target = p;
17+
else
18+
stop = true;
19+
});
20+
21+
var factor = Math.pow(10, precision == null ? 2 : precision);
22+
var rounded = Math.round((number / Math.pow(10, prefixes[target])) * factor) / factor;
23+
return rounded + ' ' + target;
24+
};

0 commit comments

Comments
 (0)