2017-04-20 7 views
1

Excelファイルをインポートしています。PHP - 暗黙の型処理が機能していませんか?

ファイルには、アイテムコード、通貨値、日付などのデータタイプが混在しています。

アイテムコードが先頭にゼロを持つことができますので、私が使用している:

$objPHPExcel->getActiveSheet()->toArray('', false, true, false); 

をあなたが期待するように、これは先行ゼロを維持しており、また、フォーマット番号保持される:12,345.00

問題は、float形式で特定の数値が必要であることです。

何らかの理由で、PHPは暗黙の型変換を実行していません。これは返し

例えば:

$value = "21,356.00"; 
$newvalue = $value * 2; 

:私はそれは42712.00を返すことが期待される42。

どうしてですか?

Excelファイルでは、項目コードが含まれている列のみがわかります。他の列は何でもかまいませんので、私は浮動小数点数をすべて解析できません。ファイル内のヘッダー行でそれらを識別します。

理想的には、型変換を暗黙的に機能させる必要があります。

提案がありますか?

答えて

0

"22,345.43"のような文字列をPHPで浮動小数点として使用しようとすると、最初のコンマの後ろのすべてが破棄され、22に変換されます。通貨でフォーマットされた文字列 "$ 22,234.45" http://php.net/manual/es/function.floatval.php#114486

注:これを避けるために0

に変換されます、あなたがこの機能を必要とするあなたはFLOATVALを必要としない、あなたはでtoFloat($ num個)を使用する必要があります最初の "ユーザー提供"メモ

この関数は、任意の書式付き数値の文字列を取り、最後のドットまたはカンマを検出し、その最後の区切り文字を使用して数値を解析します。この関数は数字以外のすべてを無視するので、通貨や桁区切り記号を削除すると便利です。

これはネイティブのPHP関数ではないため、その関数をコードに組み込んで使用する必要があります。

関連する問題