object FormatBytesToKilobytesMegabytesGigabytesTerabytes_Scala {
def main(args: Array[String]): Unit = {
println(formatBytes(9823453784599L))
println(formatBytes(7124362542L))
println(formatBytes(23746178))
println(formatBytes(1048576))
println(formatBytes(1024000))
println(formatBytes(873445))
println(formatBytes(1024))
println(formatBytes(978))
println(formatBytes(13))
println(formatBytes(0))
}
def formatBytes(bytes: Long): String = {
val sizes = Array("B", "KB", "MB", "GB", "TB")
var i = 0
var dblByte = bytes.toDouble
var tempBytes = bytes
while (i < sizes.length && tempBytes >= 1024) {
dblByte = tempBytes / 1024.0
tempBytes /= 1024
i += 1
}
f"$dblByte%.2f ${sizes(i)}"
}
}
/*
run:
8.93 TB
6.63 GB
22.65 MB
1.00 MB
1000.00 KB
852.97 KB
1.00 KB
978.00 B
13.00 B
0.00 B
*/