gpt4 book ai didi

perl - 如何在 Perl 中将数字转换为多重形式?

转载 作者:行者123 更新时间:2023-12-04 09:06:08 25 4
gpt4 key购买 nike

您是否知道一种简单直接的方法/子/模块,它允许我将数字(例如 1234567.89)转换为易于阅读的形式 - 例如 1.23M?

现在我可以通过多次比较来做到这一点,但我对我的方法不满意:

if($bytes > 1000000000){ 
$bytes = ( sprintf( "%0.2f", $bytes/1000000000 )). " Gb/s";
}
elsif ($bytes > 1000000){
$bytes = ( sprintf( "%0.2f", $bytes/1000000 )). " Mb/s";
}
elsif ($bytes > 1000){
$bytes = ( sprintf( "%0.2f", $bytes/1000 )). " Kb/s";
}
else{
$bytes = sprintf( "%0.2f", $bytes ). "b/s";
}

感谢您的帮助!

最佳答案

Number::Bytes::Human模块应该能够帮助你。

可以在其概要中找到如何使用它的示例:

  use Number::Bytes::Human qw(format_bytes);

$size = format_bytes(0); # '0'
$size = format_bytes(2*1024); # '2.0K'

$size = format_bytes(1_234_890, bs => 1000); # '1.3M'
$size = format_bytes(1E9, bs => 1000); # '1.0G'

# the OO way
$human = Number::Bytes::Human->new(bs => 1000, si => 1);
$size = $human->format(1E7); # '10MB'
$human->set_options(zero => '-');
$size = $human->format(0); # '-'

关于perl - 如何在 Perl 中将数字转换为多重形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/152968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com