38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
function getNormalSizeString (val, sliceNumber=2) {
|
|
val = +val;
|
|
if (Number.isNaN(val))
|
|
return "NaN";
|
|
if (!Number.isFinite(val))
|
|
return val >= 0 ? "∞" : "-∞";
|
|
if (!(""+val).includes("."))
|
|
return ""+val + `.${"0".repeat(sliceNumber)}`;
|
|
let [
|
|
intVal, pointVal
|
|
] = (""+val).split(".");
|
|
if (pointVal.length < sliceNumber)
|
|
pointVal = pointVal + "0"
|
|
.repeat(sliceNumber - pointVal.length);
|
|
return `${intVal}.${pointVal.slice(0, sliceNumber)}`;
|
|
}
|
|
|
|
function getStrSize (sizeBytes) {
|
|
if (sizeBytes < 512)
|
|
return sizeBytes + " B";
|
|
else {
|
|
//const failed = getNormalSizeString(0);
|
|
|
|
const kb = getNormalSizeString(sizeBytes / 1024);
|
|
const mb = getNormalSizeString(sizeBytes / 1048576);
|
|
const gb = getNormalSizeString(sizeBytes / 1073741824);
|
|
|
|
if (gb.split(".")[0] !== "0")
|
|
return gb + " GB";
|
|
if (mb.split(".")[0] !== "0")
|
|
return mb + " MB";
|
|
return kb + " KB";
|
|
}
|
|
}
|
|
|
|
module.exports.getNormalSizeString = getNormalSizeString;
|
|
module.exports.getStrSize = getStrSize;
|