我必须将从各个网站获取的数字插入到数据库中,我不知道小数分隔符/千位分隔符是什么。 数字可能是:
1,000.00
1,000.000
1.000,00
1.000,000
皆指千。或者
1.00
1.000
1,00
1,000
指的是 1...
显然数字和小数点可能会有所不同...... 你有什么技巧/解决方案吗?
提前致谢
根据您的解释,最后出现的点或逗号将是小数点分隔符。在最后一个符号上拆分以访问整数、分隔符和小数值。然后根据需要处理/格式化这些部分。
代码:(演示)
$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"