可能重复:
How to convert byte size into human readable format in java?
给定一个整数,我想用人类可读的方式使用kilo,mega,giga等乘法器打印它。我如何选择最好的"乘法器?
以下是一些例子
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,但我对算法比对语言更感兴趣。
答案 0 :(得分:2)
作为一个起点,您可以使用Math.log()函数来获取值的“大小”,然后使用某种形式的关联容器作为后缀(k,M,G等)。 / p>
var magnitude = Math.log(value)/ Math.log(10);
希望这会有所帮助