2016-07-28 4 views
0

は、より効率的な方法があります:最も効率的な通貨記号を削除する方法と2桁まで設定

  • は、小数点以下2桁
  • セット数£記号を削除します
    number_format((float)str_replace('£','',$number), 2, '.', '') 
    
  • +0

    round(floatval($ input));を使用できます。 –

    +0

    'float'への金銭的価値のキャスティングは、正確性が何らかの重要な点であればかなり面倒です。 – deceze

    +0

    yea ...可能なすべての問題をカバーするために、それはカバーする機能を作ることができます。すべての予期しない問題 –

    答えて

    0

    str_replaceの代わりにsubstr(最初の文字を削除)を使用しています(文字列全体を検索します)

    number_format((float)substr($number, 1), 2, '.', '') 
    

    またはあなたのベンチマークに依存します(それが重要な場合)高速ですsprintf

    sprintf('%0.2f', $number) 
    

    を使用。

    **通常10進数または浮動小数点数より大きい値を扱っている場合、これらの方法では正確な精度を得ることができません。より複雑なものを使用して自分自身を丸める必要があります。最後の数字から最初の数字までの桁上げで除算する。

    関連する問題