php – 要浮动的价格字符串

前端之家收集整理的这篇文章主要介绍了php – 要浮动的价格字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我喜欢将带有价格的字符串转换为浮点值.价格来自不同的语言和国家,可能如下所示:
1,00 €
 € 1.00
 1'000,00 EUR
 1 000.00$
 1,000.00$
 1.000,00 EURO

或者你能想到的任何……

我不确定我的例子中有多种可能性.我也不确定是否有可能盲目进行国际转换,也许我必须使用语言代码?所以一开始欧元和美元就足够了.

floatval()有点傻,所以我需要更多东西.我想我应该首先删除数字旁边的所有字符,然后..然后修复,/.并最终使用floatval.

有人之前做过这件事,可以帮我一点吗?

我更喜欢没有正则表达式的解决方案;)

好的,我自己尝试过.你觉得这怎么样?
function priceToFloat($s)
{
    // convert "," to "."
    $s = str_replace(',','.',$s);

    // remove everything except numbers and dot "."
    $s = preg_replace("/[^0-9\.]/","",$s);

    // remove all seperators from first part and keep the end
    $s = str_replace('.','',substr($s,-3)) . substr($s,-3);

    // return float
    return (float) $s;
}

这里有一些测试:http://codepad.org/YtiHqsgz

抱歉.我无法包含其他功能,因为键盘不喜欢它们.但是我对它们进行了比较,并且遇到了像“22 000,76”或“22.000”这样的字符串的问题.

更新:正如Limitless isa所指出的那样,您可以查看功能money-format中的构建.

猜你在找的PHP相关文章