3

int()文字列をfloat値に変換できるような関数はありますか?私は現在、次のコードを使用しています。

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

によって返された文字列substrをfloatに変換する必要があります。

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の3番目の引数は長さであり、位置ではないことをご存知ですか?また、最初の位置は0です。取得していると思われるデータが取得されていない可能性があります。文字列の先頭から開始し、1つだけずれているため、ほとんどの場合、誤って機能します。

于 2010-01-07T13:17:29.010 に答える