有没有类似于
我需要将由
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。我怀疑你得到的数据并不是你想要的,而且它大多数时候只是偶然起作用,因为你从字符串的开头开始,并且只差了一个。
$line
是如何生成的例子吗? - Nathan Fellman