3

有没有类似的函数int()可以将字符串转换为浮点值?我目前正在使用以下代码:

$input=int(substr($line,1,index($line,",")-1));

我需要将返回的字符串转换substr为浮点数。

4

2 回答 2

17

就用它吧。在 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
于 2010-01-07T09:00:34.703 回答
1

我不知道您的数据是什么样的,但是您确实意识到substr的第三个参数是长度,而不是位置,对吗?此外,第一个位置是 0。我怀疑你没有得到你认为你得到的数据,而且它大多是意外地工作,因为你从字符串的开头开始并且只差一个。

于 2010-01-07T13:17:29.010 回答