Mad*_*Ady 7 format perl numbers
你知道一个简单直接的方法/子/模块,它允许我将一个数字(比如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";
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
Wal*_*mly 20
该号码::字节::人类模块应该能够帮助你.
可以在其概要中找到如何使用它的示例:
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); # '-'
Run Code Online (Sandbox Code Playgroud)