0

我正在尝试将货币从 USD 转换为 INR 我使用以下代码:

function currency($from_Currency,$to_Currency,$amount) {
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$url = "http://www.google.com/ig/calculator?hl=en&q=$amount$from_Currency=?$to_Currency";
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,  CURLOPT_USERAGENT , "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$rawdata = curl_exec($ch);
curl_close($ch);
$data = explode('"', $rawdata);
$data = explode('"', $data['3']);
$var = $data[0];
$var=str_replace('Indian rupees','',$var);
$var=str_replace(' ', '', $var);
$var = preg_replace('/\s+/', '', $var);
//return floatval($var);
return $var;
}

我希望返回值不受货币单位和空格的影响,我想要一个完美的浮点值。我通过 str_replace() 删除了货币单位,但无法删除空间,因为使用 floatval() 转换为浮点数没有按预期工作。请帮我。

4

2 回答 2

0

已尝试使用number_format来获取您的解决方案,您也可以查看我在此处给出的详细链接。

你可以像这样替换它

$var = preg_replace('/\s+/', '', $var);
//return floatval($var);
return number_format($var,2);

让我知道我是否可以为您提供更多帮助

于 2013-07-06T06:13:32.550 回答
0

我相信你的问题是你有一个中间有空格的数字。这是删除空间的方法。

$output = "3 128.71535";

$out = preg_replace("/\s/", "", $output);
echo $out; //outputs: 3128.71535

更新

或者,您可以删除除数字和句点以外的任何内容。

$output = "3 128.71535";

$out = preg_replace("/[^0-9.]/", "", $output);
echo $out; //outputs: 3128.71535
于 2013-07-06T06:15:02.933 回答