2011-08-10 13 views
1

私の問題は、これらの型を正しくキャストしていないということです。数字が3よりも良い方法を見つけ出す必要があります。なぜPHPはカンマをピリオドなどと見なすのかを知るためです。コンマでintに型打ち文字列を型変換する

$cost = "7,800.00"; // "7,800.00" 
$cost = (int) "7,800.00" // int(7) 
$cost = (int) preg_replace('/[^-0-9\.]/i', '', "7,800.00"); // int(7800) 

編集、読んでいない人に物事を明確にする:私はこれを行うにはよりエレガントな方法を探しています。この動作が存在する限り、私はすでに私が探していた説明を得ました。ありがとう。

+0

私はカンマ、多分金銭的なフォーマットにはint型の値が存在しないとは思いませんか? money_format() –

+1

文字列のカンマのみを削除すると考えましたか?カンマは、一部の国では小数点文字ですが、他の国では使用できないため、あいまいになります。なぜあなたは#3をしたくないのですか?再利用のために関数にラップするだけです。 –

+0

何が問題ですか?この質問に問題はありません – ajreal

答えて

0

PHPは、数字文字、ピリオド、または累乗のためのeではないため、グループ化文字(この場合はカンマ)をどうするかを知りません。したがって、最初の関連性のない文字が読み込まれると、関数は解析を停止します。

第二に、数値関数のPHPを見て提供しています:floatvalintval

関連する問題