【问题标题】:formatting currency for google merchant center谷歌商家中心格式化货币
【发布时间】:2017-04-13 14:17:03
【问题描述】:

要使用经过批准的谷歌商家,我需要以这种格式向他们发送价格:

  • 2,00 EUR 必须写成 2.00 ou 2。
  • 100 000,00 EUR 必须写成 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);

在我看来这很糟糕。对此有什么想法吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    正则表达式可以帮助您保持整洁,但您仍然需要删除其中的点,然后用点替换逗号。一旦你有了它,你就可以使用

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

    消除您保存的任何货币标签。未来请注意:在为多币种交易开发软件时,您应该将值与货币分开。这样,您可以在 db 中保留一个十进制值,并将货币类型保留在 tnother 中,而不必为此烦恼。

    玩得开心!如果您还需要什么,请告诉我

    【讨论】:

    • 谢谢,但在我看来,仍然必须删除点并替换逗号并不整洁。感谢我,这不是多币种
    • 在我的。以字符串格式保存要用作小数的值是恕我直言的缺陷。如果 NumberFormatter::parseCurrency 按预期工作,请使用它。但它仍然是一个补丁:)
    • 你是对的; )。无论如何 NumberFormatter::parseCurrency 看起来正是我想要的。谢谢
    【解决方案2】:

    您可以使用NumberFormatter::parseCurrency 将字符串解析为使用当前格式化程序的双精度和货币。

    【讨论】:

    猜你喜欢
    • 2011-09-12
    • 2018-08-20
    • 1970-01-01
    • 2016-02-03
    • 2022-08-22
    • 2016-04-25
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多