加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中将数字转换为多个表单?

发布时间:2020-12-15 21:53:17 所属栏目:大数据 来源:网络整理
导读:你知道一个简单直接的方法/子/模块,它允许我将一个数字(比如1234567.89)转换成一个易读的形式 – 比如1.23M吗? 现在我可以通过几次比较来做到这一点,但我对我的方法不满意: if($bytes 1000000000){ $bytes = ( sprintf( "%0.2f",$bytes/1000000000 )). " G
你知道一个简单直接的方法/子/模块,它允许我将一个数字(比如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); # '-'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读