Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Округление до ближайшего целого php! Аналог функции round(),чтобы в парам. мо 
V
    Опции темы
grimweb
  Дата 15.3.2008, 13:13 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



В функции round() в параметре можно указать только число, переменную, как оказалось, туда не поставишь... Так вот: есть ли какая функция в php чтобы можно было так прописать: имя_функции($x)? Вопрос нубовский, но все же...
PM MAIL   Вверх
Serkys
Дата 15.3.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



grimweb, функции без разницы - передаёшь ты туда значение переменной или число напрямую smile
Ты ошибаешься, нет таких функций, куда нельзя было бы передавать переменные, только значения. Вот наоборот - есть, когда можно передать только переменную (по ссылке), а скалярное значение - нет.

Добавлено через 1 минуту и 26 секунд
Код

$var = 3.14;
echo round($var); //выведет 3

PM MAIL   Вверх
grimweb
  Дата 15.3.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



Цитата(Serkys @ 15.3.2008,  13:24)
grimweb, функции без разницы - передаёшь ты туда значение переменной или число напрямую smile
Ты ошибаешься, нет таких функций, куда нельзя было бы передавать переменные, только значения. Вот наоборот - есть, когда можно передать только переменную (по ссылке), а скалярное значение - нет.

Добавлено @ 13:25
Код

$var = 3.14;
echo round($var); //выведет 3

СПС!! Только вот у меня все рано не получалось, не знаю почему... даже так: 
Код

(int)$x;
/*$x - число float*/

PM MAIL   Вверх
Serkys
Дата 15.3.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



grimweb, (int)$x не преобразует $x в тип integer, а вернёт значение $x, но преобразованное в тип integer.
Код

$x = (int)$x; //теперь $x типа integer

settype($x, 'integer'); //другой вариант смены типа


Цитата(grimweb @  15.3.2008,  13:33 Найти цитируемый пост)
Только вот у меня все рано не получалось, не знаю почему

Покажи код
PM MAIL   Вверх
grimweb
  Дата 15.3.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



У меня правда уже все получилось, но все же покажу. Только сразу говорю: код нубовский. Таким профессионалам, как ты, будет просто смешно. Просто я только начал учиться... Короче, вот код:
Код

<form action="test.php" method="post" name="form">
2*2=?<br>
<input type="radio" name="2*2" value="4" CHECKED>4<br>
<input type="radio" name="2*2" value="5">5<br>
<input type="radio" name="2*2" value="7">7<br>
<br>
5*5=?<br>
<input type="radio" name="5*5" value="20" CHECKED>20<br>
<input type="radio" name="5*5" value="25">25<br>
<input type="radio" name="5*5" value="27">27<br>
<br>
7*7=?<br>
<input type="radio" name="7*7" value="42" CHECKED>42<br>
<input type="radio" name="7*7" value="49">49<br>
<input type="radio" name="7*7" value="55">55
<br>
<input type="submit" name="submit" value="Отправить!"><input type="reset" name="reset" value="Очистить!">
</form>
<?php
$_2_2 = $_POST['2*2'];
$_5_5 = $_POST['5*5'];
$_7_7 = $_POST['7*7'];
if(isset($_7_7, $_5_5, $_2_2) === false)
{
echo "Внимание! Вы не полностью заполнили форму! Введите недостающую информацию!";
}
$x = 0;
if($_2_2 == 4) {
++$x; }
if($_5_5 == 25) {
++$x; }
if($_7_7 == 49) {
++$x; }
$x/=3; // В данном случае 3 - общее количество вопросов.
$x*=5; // В данном случае ставим оценку по 5-бальной шкале.
if ($x == 0) {
$x = 1;  }
$y = round($x); // Выполняем округление до ближайшего целого...
$a = $y - $x; // ранее мы скопировали изначальное значение оценки $x в переменную $y и теперь можем смело с ней манипулировать!
if($a > 0) {
$b = "-"; }
elseif($a < 0) {
echo $b = "+"; }
else {
echo $b = ""; }
echo "Поздравляем! Вы успешно прошли этот тест! Ваши знания оценены на: \" ".$y.$b." \" по 5-бальной шкале!";
?>

PM MAIL   Вверх
DioNiR
Дата 16.3.2008, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



На будующие старайся писать более красивый PHP код. Иммено из-за этого многое не получается.

Например вот так:
Код
<?php
    $_2_2 = $_POST['2*2'];
    $_5_5 = $_POST['5*5'];
    $_7_7 = $_POST['7*7'];
    
    if(isset($_7_7, $_5_5, $_2_2) === false)
    {
        echo "Внимание! Вы не полностью заполнили форму! Введите недостающую информацию!";
    }
    
    $x = 0;
    
    if($_2_2 == 4) 
    {
        ++$x; 
    }
    
    if($_5_5 == 25) 
    {
        ++$x; 
    }
    
    if($_7_7 == 49) 
    {
        ++$x; 
    }
    $x/=3; // В данном случае 3 - общее количество вопросов.
    $x*=5; // В данном случае ставим оценку по 5-бальной шкале.
    
    if ($x == 0) 
    {
        $x = 1;  
    }
    $y = round($x); // Выполняем округление до ближайшего целого...
    $a = $y - $x; // ранее мы скопировали изначальное значение оценки $x в переменную $y и теперь можем смело с ней манипулировать!
    
    if($a > 0) 
    {
        $b = "-"; 
    }
    elseif($a < 0) 
    {
        echo $b = "+"; 
    }
    else 
    {
        echo $b = ""; 
    }
    echo "Поздравляем! Вы успешно прошли этот тест! Ваши знания оценены на: \" ".$y.$b." \" по 5-бальной шкале!";
?>

Сразу ясно что за чем.

Да и ещё если тема решена помечай её как помеченной. Это в верху справа от названии темы.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
grimweb
Дата 16.3.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



DioNiR
Тебе тоже спасибо. Все очень хорошо показал. Только лично я против пропусков строк. Слишком растянуто получается. А так ты полностью прав. Спасибо за совет, учту.
PM MAIL   Вверх
Serkys
Дата 16.3.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(grimweb @  16.3.2008,  14:14 Найти цитируемый пост)
Только лично я против пропусков строк. Слишком растянуто получается.

С малыми файлами - как удобнее самому. Но при разборе файла в несколько тысяч строк - без пропусков взгляд будет постоянно сбиваться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1225 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.