可能的重复项:
如何在java中将字节大小转换为人类可读的格式?
给定一个整数,我想使用千、兆、千等乘数以人类可读的方式打印它。如何选择"最佳"乘数?
以下是一些示例
1 print as 1
12345 print as 12.3k
987654321 print as 988M
理想情况下,打印的位数应该是可配置的,例如,在最后一个示例中,3位数字将导致988M,2位数字将导致1.0G,1位数字将导致1G,4位数字将导致987.7M。
示例:我认为,当OSX告诉我还需要复制多少字节时,Apple会使用这种算法。
这将适用于Java,但我对算法比语言更感兴趣。
作为起点,您可以使用 Math.log() 函数来获取值的"大小",然后使用某种形式的关联容器作为后缀(k、M、G 等)。
var 幅度 = 数学.log(值)/数学.log(10);
希望这有所帮助