Здравствуйте, seregaa, Вы писали:
S>И все таки лучший вариант здесьАвтор: seregaa
Дата: 16.07.03
Сорри, просто не посмотрел ссылку.
Я и не подозревал, что ЦБ так заботиться о нуждах простого вебмастера и не только
Класс, там даже примеры на PHP есть

... << RSDN@Home 1.1 beta 1 >>
Thanx!!
Вот только теперь такая проблема — не могу вытащить float значение из возвращаемого массива:
$baks=get_course();
$cost=100;
$cr=$baks[4]*$cost;
printf ("%f",$cr)
получаю 3000, несмотря на то, что $baks[4] равен 30,3524
Здравствуйте, O-Sam, Вы писали:
OS>Thanx!!
OS>Вот только теперь такая проблема — не могу вытащить float значение из возвращаемого массива:
OS>OS>$baks=get_course();
OS>$cost=100;
OS>$cr=$baks[4]*$cost;
OS>printf ("%f",$cr)
OS>
OS>получаю 3000, несмотря на то, что $baks[4] равен 30,3524
это из-за запятой. Дробная часть в float-значениях в идеале должна отделяться точкой.
иначе PHP при числовых операциях парсит число до первой ошибки — в нашем случае до запятой — получается 30. И ты его умножаешь на 100 — выходит 3000.
внутри функции get_course() немного измени предпоследнюю строку на:
if (preg_match($regexp, $garbage, $matches)) return array($matches[1], $matches[2], $matches[3], $matches[4], str_replace(',','.',$matches[5]));
то есть возвращаешь вместо $matches[5] вот это: str_replace(',','.',$matches[5]) // заменяешь запятые на точки.
можно для верности так:
if (preg_match($regexp, $garbage, $matches))
return array($matches[1], $matches[2], $matches[3], $matches[4], floatval(str_replace(',','.',$matches[5])));
только функция floatval() судя по документации, доступна начиная с версии PHP 4.2.0
пример обновился:
http://911.ru/to_rsdn/course.php
его исходник:
http://911.ru/to_rsdn/course.php.html
Удачи.