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

Форум PHP

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

 

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

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

тема: округление
 
 автор: psychomc   (16.05.2011 в 22:00)   письмо автору
 
 

необходимо сделать округление таким образом


1.21 -> 1.20
1.23 -> 1.25
1.28 -> 1.30
 

и т.п
решение я приблизительно придумал, но оно мне не нравится т.к получается объемное и некрасивое (преобразовывал число в строку, обрабатывал отдельно дробную часть и т.д.)
может быть у кого есть идеи, как это сделать минимальными затратами с мин. количеством кода? спасибо.

  Ответить  
 
 автор: parczynski   (17.05.2011 в 03:18)   письмо автору
 
   для: psychomc   (16.05.2011 в 22:00)
 

а если так?
<?php

    $chislo
=1.28;
    echo 
number_format($chislo-fmod($chislo,0.05)+((fmod($chislo,0.05)>0.02)?0.05:0),2);

?>

  Ответить  
 
 автор: psychomc   (17.05.2011 в 12:29)   письмо автору
 
   для: parczynski   (17.05.2011 в 03:18)
 

спасибо. супер! то что надо

  Ответить  
 
 автор: Yuriev   (17.05.2011 в 11:35)   письмо автору
 
   для: psychomc   (16.05.2011 в 22:00)
 

А если так. Разделить на 5, округлить, умножить на 5
<table cellspacing="5">
<?php
$aa 
1.20;
for (
$i 0$i 10$i++) {
    
$a $aa $i 100;
    
$b $a 5;
    
$c round($b2) * 5;
    echo 
'<tr><td>'.$a.'</td><td>'.$b.'</td><td>'.$c.'</td></tr>';
}
?>
</table>

  Ответить  
 
 автор: psychomc   (17.05.2011 в 12:33)   письмо автору
 
   для: Yuriev   (17.05.2011 в 11:35)
 

спасибо, Ваш вариант тоже подходит. осталось только выбрать лучший

  Ответить  
 
 автор: psychomc   (17.05.2011 в 12:38)   письмо автору
 
   для: Yuriev   (17.05.2011 в 11:35)
 

да, Ваш вариант то что надо, только добавил
sprintf("%01.2f", $c);
чтобы не терялся нолик.

всем еще раз спасибо что откликнулись

  Ответить  
Rambler's Top100
вверх

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