2016-09-14 10 views
1

私はmySQLデータベースにフィールドを持っています:価格フィールドはfloat(25,2)に設定されています。変数が動作しないPHP数学

なぜ結果が得られませんか?

$refundable = $trial->data()->price - 100.00;

私はちょうど$ trial->データをエコーし​​た場合() - >価格は、私は1100.00のレコード値を得るが、それはこの単純な数学の方程式では動作しません。

何がここで$返金

ため、結果として表示されませんが、私のメソッドです:

public function find($invoice_id = null) { 
     if($invoice_id) { 
      $data = $this->_db->query("SELECT * FROM invoice WHERE invoice_id =" . $invoice_id . ""); 

      if($data->row_count()) { 
       $this->_data = $data->first(); 
       return true; 
      } 
     } 
     return false; 
    } 

    public function data() { 
     return $this->_data; 
    } 
+1

どのように結果を出力していますか? –

+1

$ 'var_dump($ trial-> data() - > price);の出力は何ですか? –

+1

また、 'data()'メソッドがどのように機能するかを示すことができますか? –

答えて

0

PHPは文字列として、あなたのDBから値を解釈することができます。フロートとしてキャストすると効果があります。

$refundable = (float)$trial->date()->price - 100.00 
+0

'price'が数字の文字列である場合、それを浮動小数点数から減算すると、[数値コンテキスト](http://php.net/manual/en/language.types.string.php#language.types.string.conversionここでは既に数値として評価されます)。明示的なキャストは必要ありません。 –

+0

varダンプはstring(7)です。 –

+0

また、私の質問をメソッドで更新しました。 –

0

私はこれを考え出しました。数学演算はうまくいきました。私が発見した問題は、私が使用していた場所では、特定のプラグインで正しく動作するために、文字列に変換し直さなければならないということです。

私はここで助けていただきありがとうございます。

コメントがなければ、私はしばらく失われていたでしょう!

関連する問題