仅可将英国数字样式转换为数字

时间:2014-08-18 18:11:59

标签: php formatting

我有一个数字列表,范围从像51和102这样的好数字。当它超过一千时,它将其写为2,012或9,216。当它超过一万时它写成24.1k,87.9k。当它超过100万时,写入为1.4米或142.5米。

问题是我不知道如何将此转换为可读数字。例如,142.5m应该是142500000。 作为我尝试使用它的第一步:

function cleanPrice($pris) 
{
return preg_replace('/\D/', '', $pris);
}

cleanPrice($pris);
它并没有太顺利。我试图摆脱,和。和m和k。但无处可去。 有什么功能或内置到PHP中的东西吗?我知道number_format存在,但它只有一种方式,这种方式可悲的是我想要走错路

1 个答案:

答案 0 :(得分:1)

function cleanPrice($pris) {
    $last = substr($pris, strlen($pris)-1);
    switch($last) {
        case "k": $scale = 1000; break;
        case "m": $scale = 1000000; break;
        default: $scale = 1;
    }
    return preg_replace('/[^-0-9.]/', '', $pris) * $scale;
}

DEMO