abs

(PHP 4, PHP 5)

absМодуль числа

Описание

number abs ( mixed $number )

Возвращает абсолютное значение number.

Список параметров

number

Числовое значение

Возвращаемые значения

Абсолютное значение number. Если тип аргумента number - float, то возвращаемый тип также float, иначе - integer (тип float обычно имеет большую область значений, чем тип integer).

Примеры

Пример #1 Пример использования abs()

<?php
$abs 
abs(-4.2); // $abs = 4.2; (double/float)
$abs2 abs(5);   // $abs2 = 5; (integer)
$abs3 abs(-5);  // $abs3 = 5; (integer)
?>

Смотрите также

Коментарии

Автор:
[*EDIT* by danbrown AT php DOT net: Merged user's corrected code with previous post content.]


jeremys indicated one thing - there is no sgn function wich actually seems a bit strange for me. Of course it is as simple as possible, but it is usefull and it is a standard math function needed occasionally.

Well, I have solved this function in a bit different matter:

<?php

function sgn($liczba)
{
    if(
$liczba>0)
       
$liczba=1;
    else if(
$liczba<0)
       
$liczba=-1;
    else if(!
is_numeric($liczba))
       
$liczba=null;
    else
       
$liczba=0;
    return 
$liczba;
}

?>

The difference is that it returns null when the argument isn't a number at all.
2008-07-17 04:59:19
http://php5.kiev.ua/manual/ru/function.abs.html
If you don't have/want GMP and are working with large numbers/currencies:

<?php
function mb_abs($number)
{
  return 
str_replace('-','',$number);
}
?>

No need to worry about encoding, as your numbers should all be basic (ANSI) strings.
2011-05-25 15:44:12
http://php5.kiev.ua/manual/ru/function.abs.html
<?php
$arr 
= array();
for (
$i 0$i 1000$i++) $arr[] = rand(-100100);

$start microtime(true);
for (
$i 0$i 1000$i++){
    foreach (
$arr as $v$v abs($v);
}
echo 
number_format(microtime(true) - $start4).'<br />';

$start microtime(true);
for (
$i 0$i 1000$i++){
    foreach (
$arr as $v) if ($v 0$v abs($v);
}
echo 
number_format(microtime(true) - $start4).'<br />';

$start microtime(true);
for (
$i 0$i 1000$i++){
    foreach (
$arr as $v) if ($v 0$v *= -1;
}
echo 
number_format(microtime(true) - $start4).'<br />';
?>
Result:
1.4061
0.9697
0.2805

Conclusion: better to check before using the feature that the number is less than zero. Even better use multiplication by -1 than this function.
2016-07-25 12:28:18
http://php5.kiev.ua/manual/ru/function.abs.html

    Поддержать сайт на родительском проекте КГБ