2016-11-29 64 views
0

格式化貨幣來使用谷歌批准的商人,我需要向他們發送的價格格式如下:爲谷歌商戶中心

  • 2,00 EUR必須被寫爲2.00 OU 2
  • 100 000, 00歐元必須寫成100000或100000.00,而不是100,000.00,100,000或+100,000。
  • 負數值,如-20,14 EUR,必須寫爲-20.14。

我在我的數據庫實際上是這樣寫100.000,00€

有這麼來取代它,我已經使用:

$total_price = substr(str_replace(",", ".", str_replace(".", "", $order->info['total'])),0, -6); 

這是相當不好的在我看來, 。對此有何想法?

回答

0

您可以使用NumberFormatter::parseCurrency使用當前格式化程序將字符串解析爲雙精度和貨幣。

+0

thx,我會深入瞭解。但文件看起來不是很強 – akabaka

+0

對於那些後來,我發現:這解釋得更好,我認爲[有用的PHP函數,你可能沒有聽說過](http://www.devlifeline.com/ 2013/10/helpful-php-functions-part-1.html) – akabaka

0

很好的正則表達式可以幫助你保持整潔,但是你仍然需要刪除你在那裏的點,然後用一個點替換逗號。一旦你有,你可以使用

$str = preg_replace('/[^0-9.]+/', '', $str); 

消除您保存的任何貨幣標籤。注意將來您:開發多幣種交易軟件時,您應該從貨幣中分離出價值。這樣你就可以在分貝中保留一個十進制值,並且可以將貨幣類型保留在其他位置,而不用擔心這一切。

玩得開心!讓我知道如果你需要任何東西

+0

謝謝,但仍然不得不刪除點並替換逗號不整齊在我看來。並感謝我,它不是多幣種這一個 – akabaka

+0

在我的。保存一個你想用作字符串格式小數的值是一個缺陷。如果NumberFormatter :: parseCurrency按預期工作,請使用它。但它仍然是一個補丁:) –

+0

你是對的; )。無論如何NumberFormatter :: parseCurrency看起來正是我想要的。謝謝 – akabaka