使用 "most appropriate" 千克/兆/等乘数打印整数



可能的重复项:
如何在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);

希望这有所帮助

最新更新