我使用CSV文件和Excel格式往往價格如下工作:解析帶點一個數字作爲千個分隔符和逗號作爲小數點分隔
$ 384.642,54
凡小數54.我要圓這個號碼384.643
(總是舍入)。
我做的第一件事:刪除空格和excel放在單元格中的$符號。 我現在擁有的是這個號碼384.642,54
。我需要PHP知道小數點是昏迷點,點是千位分隔符,然後圍繞它。
我還沒有能夠實現這與number_format。它返回我384
我使用CSV文件和Excel格式往往價格如下工作:解析帶點一個數字作爲千個分隔符和逗號作爲小數點分隔
$ 384.642,54
凡小數54.我要圓這個號碼384.643
(總是舍入)。
我做的第一件事:刪除空格和excel放在單元格中的$符號。 我現在擁有的是這個號碼384.642,54
。我需要PHP知道小數點是昏迷點,點是千位分隔符,然後圍繞它。
我還沒有能夠實現這與number_format。它返回我384
你去那裏:
$number = str_replace('.', '', $number);
$number = str_replace(',', '.', $number);
$number = ceil($number);
正如我在評論說,最不侵入性的方式是str_replace()函數中不需要的部分。然後使用ceil()
四捨五入。
$num = '$ 384.642,54';
//- replace not wanted characters with ''
$num = str_replace(array('$',' ','.'), '');
//- convert the comma to decimal point, and transform it to a float
$num = floatval(str_replace(',','.'));
echo ceil($num);
(可選)您可以使用preg_replace()來'智能'替換東西,但對於此設置它不具有成本效益。
最簡單和最不涉及的解決方案:使用str_replace
來替換帶空串的點;然後再次使用它以點替換逗號;然後用floatval
將字符串轉換爲數字,然後你想圓任何方式:
$result = round(floatval(str_replace(',', '.', str_replace('.', '', '384.642,54'))));
$num = '$ 384.642,54';
echo number_format(
ceil(
str_replace(
array('.', '$', ' ', ','),
array('', '', '', '.'),
$num
)
), 0, '', '.'
);