见一道阿里简单面试题

阿里简单面试题

今天在群里见到一个简单的阿里面试题,遂做,记录一下

输入一个数字 整数位每隔三位插入一个逗号 小数点后保存两位 输入的不是数字返回“-”

看到这道题应该立马就有思路了

想到了正则,于是拿了 perl

sub process_number {
  my ($str) = @_;

  unless($str =~ m/\d+/){
    return '-';
  }

  unless($str =~ m/\./g){
    $str = $str . '.00';
  } else {
    $str = sprintf "%.2f", $str
  }

  $str =~ s/(?<=\d)(?=(?:\d{3})+?\.)/,/g;
  $str;
}

小记。

你可能感兴趣的:(perl,perl)