php 如何获取未知数字的当前小数/千位分隔符

问题描述 投票:0回答:1

我必须将从各个网站获取的数字插入到数据库中,我不知道小数分隔符/千位分隔符是什么。 数字可能是:

1,000.00
1,000.000
1.000,00
1.000,000

皆指千。或者

1.00
1.000
1,00
1,000

指的是 1...

显然数字和小数点可能会有所不同...... 你有什么技巧/解决方案吗?

提前致谢

php web-scraping localization
1个回答
0
投票

根据您的解释,最后出现的点或逗号将是小数点分隔符。在最后一个符号上拆分以访问整数、分隔符和小数值。然后根据需要处理/格式化这些部分。

代码:(演示

$tests = [
    '1,000.00',
    '1,000.000',
    '1.000,00',
    '1.000,000',
    '1.00',
    '1.000',
    '1,00',
    '1,000',
];

foreach ($tests as $test) {
    [$int, $sep, $dec] = preg_split('/.*\K([.,])/', $test, 3, PREG_SPLIT_DELIM_CAPTURE);
    var_dump($test, $int, $sep, $dec);
    echo "\n";
}

输出:

string(8) "1,000.00"
string(5) "1,000"
string(1) "."
string(2) "00"

string(9) "1,000.000"
string(5) "1,000"
string(1) "."
string(3) "000"

string(8) "1.000,00"
string(5) "1.000"
string(1) ","
string(2) "00"

string(9) "1.000,000"
string(5) "1.000"
string(1) ","
string(3) "000"

string(4) "1.00"
string(1) "1"
string(1) "."
string(2) "00"

string(5) "1.000"
string(1) "1"
string(1) "."
string(3) "000"

string(4) "1,00"
string(1) "1"
string(1) ","
string(2) "00"

string(5) "1,000"
string(1) "1"
string(1) ","
string(3) "000"
© www.soinside.com 2019 - 2024. All rights reserved.