有没有类似的函数int()
可以将字符串转换为浮点值?我目前正在使用以下代码:
$input=int(substr($line,1,index($line,",")-1));
我需要将返回的字符串转换substr
为浮点数。
有没有类似的函数int()
可以将字符串转换为浮点值?我目前正在使用以下代码:
$input=int(substr($line,1,index($line,",")-1));
我需要将返回的字符串转换substr
为浮点数。
就用它吧。在 Perl 中,看起来像数字的字符串就是数字。
现在,如果你想在使用它之前确定它是一个数字,那么有一个实用方法Scalar::Util
可以做到:
use Scalar::Util qw/looks_like_number/;
$input=substr($line,1,index($line,",")-1);
if (looks_like_number($input)) {
$input += 1; # use it as a number!
}
根据您在评论中留下的示例输入,提取数字的更稳健的方法是:
$line =~ /([^\[\],]+)/; # <-- match anything not square brackets or commas
$input = $1; # <-- extract match
我不知道您的数据是什么样的,但是您确实意识到substr的第三个参数是长度,而不是位置,对吗?此外,第一个位置是 0。我怀疑你没有得到你认为你得到的数据,而且它大多是意外地工作,因为你从字符串的开头开始并且只差一个。