0

可能重复:
如何在 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,但我对算法比对语言更感兴趣。

4

1 回答 1

2

作为起点,您可以使用 Math.log() 函数来获取值的“大小”,然后使用某种形式的关联容器作为后缀(k、M、G 等)。

var 幅度 = Math.log(value) / Math.log(10);

希望这会有所帮助

于 2012-10-17T23:14:24.137 回答