I need to display a file size as a string using sensible units. For example, 1L ==> "1 B"; 1024L ==> "1 KB"; 2537253L ==> "2.3 MB" etc. I found this previous answer, which I didn't find satisfactory. I have come up with my own solution which has similar shortcomings: private static final long K = 1024; private static final long M = K * K; private static final long G = M * K; private static final l
![Format file size as MB, GB, etc](https://cdn-ak-scissors.b.st-hatena.com/image/square/98d6f053a97a87156775f60757c60865d0f2c47d/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fstackoverflow%2FImg%2Fapple-touch-icon%402.png%3Fv%3D73d79a89bded)