Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить после точки
 
 автор: Diplex   (12.04.2008 в 11:56)   письмо автору
 
 

Всем привет, что-то не пойму, как такое сделать.

Есть, допустим такое число: 228.466875

Мне нужно выделить из него только 228.

Проблема в том, что я не знаю, сколько символов будет после точки и до точки.

Заранее спасибо!

   
 
 автор: drago   (12.04.2008 в 11:58)   письмо автору
 
   для: Diplex   (12.04.2008 в 11:56)
 


<?
$var 
228.466875;
echo 
$var = (int)$var;
?>

   
 
 автор: Diplex   (12.04.2008 в 12:05)   письмо автору
 
   для: drago   (12.04.2008 в 11:58)
 

Спасибо :) Сколько всего делал, а до сих пор не требовалась такая функция :)

   
 
 автор: Visavi   (12.04.2008 в 23:24)   письмо автору
 
   для: drago   (12.04.2008 в 11:58)
 

вот так тоже вариант
<?  
$var 
228.466875;
echo 
strtok($var'.');
?>

   
 
 автор: Rolsik   (12.04.2008 в 12:11)
 
   для: Diplex   (12.04.2008 в 11:56)
 


$a  = 228.466875;
$b = explode(".", $a);
echo "a=$b[0] "; // 288
echo "b=$b[1] "; // 466875

   
 
 автор: Diplex   (12.04.2008 в 12:30)   письмо автору
 
   для: Rolsik   (12.04.2008 в 12:11)
 

Кстати да, про такой способ мог бы и догадаться. Спасибо

   
 
 автор: Visavi   (12.04.2008 в 23:51)   письмо автору
 
   для: Diplex   (12.04.2008 в 12:30)
 

ради интереса попробовал проверить на скорость все варианты создал цикл от 0 до миллиона , вычесления внутри и вот что получилось

$var = 228.466875;
echo $var = (int)$var;

1.12 сек
------------------------

$var = 228.466875;
echo intval($var);

1.40 сек
------------------------

$var = 228.466875;
echo floor($var);

3.97 сек
------------------------

$var = 228.466875;
echo round($var);

4.21 сек
------------------------

$var = 228.466875;
echo strtok($var, '.');

4.38 сек
-------------------------

$a = 228.466875;
$b = explode(".", $a);
echo $b[0];

5.26 сек
------------------------

больше вариантов не пришло в голову, если что могу проверить и другие варианты

   
 
 автор: Visavi   (13.04.2008 в 00:02)   письмо автору
 
   для: Visavi   (12.04.2008 в 23:51)
 

вот так самый медленный вариант

$var = 228.466875;
echo substr($var, 0, strpos($var, '.'));

7.5 сек в среднем

   
 
 автор: Diplex   (13.04.2008 в 09:21)   письмо автору
 
   для: Visavi   (13.04.2008 в 00:02)
 

О, спасибо. Хорошее тестирование, я как раз первый способ и стал использовать :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования