набросал класс:
class ServiceModel {
const t_url = 'http://www.cbr.ru/scripts/XML_daily.asp';
/**
* Получение курса валюты по номеру
*
* @param int номер валюты $num_code
* @return array номинал, цена
*/
public function getValute($num_code) {
// сегодняшняя дата
$date = date('d/m/Y');
// адрес запроса
$url = self::t_url."?date_req=".$date;
$res = simplexml_load_file($url);
$row=array();
foreach ($res->children() as $item) {
if($item->NumCode == $num_code) {
$row['nominal'] = (float)$item->Nominal;
$row['price'] = (float)$item->Value;
}
}
return $row;
}
}
где-то есть такой код
$sm=new ServiceModel();
$valute=($sm->getValute(978));
/*$valute['price']=44.195; // <- ЕСЛИ ТАК, ТО ВСЕ В ПОРЯДКЕ!!! */
$good['price']=$good['price']*$valute['price'];
echo ($good['price']);
При good['price'] == 30 и $valute['price']==44.195, товар по идее должен стоить 1325.85(44.195 * 30), а стоит 1320(44 * 30)
Везде уже пытался поставить преобразование типа во (float), но не помогло.
Надеюсь на Вашу поддержку.
Спустя 17 минут, 8 секунд (4.12.2009 - 13:04) Oyeme написал(а):
Попробуй
sprintf("%01.2f",$good['price']);
Спустя 9 минут, 41 секунда (4.12.2009 - 13:13) b00tanik написал(а):
Попробовал:
То же самое.
$sm=new ServiceModel();
$valute=($sm->getValute(978));
// $valute['price']=44.195;
$good['price']=$good['price']*$valute['price'];
$good['price']=sprintf("%01.2f",$good['price']);
echo ($good['price']);
То же самое.
Спустя 13 минут, 17 секунд (4.12.2009 - 13:26) Oyeme написал(а):
$row['price'] = (float)str_replace(",", ".", (string)$item->Value);
$row['nominal'] = (float)str_replace(",", ".", (string)$item->Nominal);

Спустя 2 минуты, 29 секунд (4.12.2009 - 13:29) b00tanik написал(а):
помогло. Спасибо. Можно закрывать тему
