Из всех имеющихся математических функций PHP, рассмотрим наиболее употребляемые из них:
В РНР имеется множество предопределенных числовых констант, которые используются в инженерных и научных расчетах.
Имя константы | Значение | Описание |
M_PI | 3,14159265358979323846 | Число |
M_E | 2,7182818284590452354 | e |
M_LOG2E | 1,4426950408889634074 | log2(e) |
M_LOG10E | 0,43429448190325182765 | lg(e) |
M_LN2 | 0,69314718055994530942 | ln(2) |
M_LN10 | 2,30258509299404568402 | ln(10) |
M_PI_2 | 1,57079632679489661923 | /2 |
M_PI_4 | 0,78539816339744830962 | /4 |
M_1_PI | 0,31830988618379067154 | 1/ |
M_2_PI | 0,63661977236758134308 | 2/ |
M_SQRTPI | 1,77245385090551602729 | sqrt() |
M_2_SQRTPI | 1,12837916709551257390 | 2/sqrt() |
M_SQRT2 | 1,41421356237309504880 | sqrt(2) |
M_SQRT3 | 1,73205080756887729352 | sqrt(3) |
M_SQRT1_2 | 0,70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1,14472988584940017414 | ln(p) |
M_EULER | 0,57721566490153286061 | Постоянная Эйлера |
В РНР числа можно представлять в системах с различными основаниями: 10(десятичной), 8(восьмеричной), 2(двоичной). Наиболее привычной для нас является десятичная форма представления чисел от 0 до 9. В компьютерных технологиях часто используются и другие системы: восьмеричная (цифры от 0 до 7), шестнадцатеричная( цифры 0, . . . , 9, а, b, . . . ,f) и двоичная (цифры 0 и 1). Например, десятичное число 17 в восьмеричной представляется как 15, в шестнадцатеричной как b0, а в двоичной как 10001.
Для преобразований чисел из одной системы счисления в другую служат специальные функции.
Пример:
В окне веб-браузера это будет выглядеть ТАК.
Пример:
<?php
$a=dechex(6); //возвращает 6
$a1=dechex(250); //возвращает fa
$a2=dechex(255); //возвращает ff
echo "$a <br> $a1 <br> $a2 ";
?>
В окне веб-браузера это будет выглядеть ТАК.
Пример:
В окне веб-браузера это будет выглядеть ТАК.
Пример:
<?php
$a=decbin(4);//возвращает 100
$a1=decbin(200); //возвращает 11001000
$a2=decbin(255); //возвращает 11111111
echo "$a <br> $a1 <br> $a2 ";
?>
В окне веб-браузера это будет выглядеть ТАК.
Пример:
<?php
$a=bindec(10);//возвращает 2
$a1=bindec(110); //возвращает 6
$a2=bindec(001); //возвращает 1
echo "$a <br> $a1 <br> $a2 ";
?>
В окне веб-браузера это будет выглядеть ТАК.
Пример:
В окне веб-браузера это будет выглядеть ТАК.
Пример:
<?php
$a=octdec("07");//возвращает 7
$a1=octdec("57"); //возвращает 47
$a2=octdec("355"); //возвращает 237
echo "$a <br> $a1 <br> $a2 ";
?>
В окне веб-браузера это будет выглядеть ТАК.
Внимание! Во всех перечисленных выше функциях строковые параметры можно передавать без кавычек.
Представления чисел в различных системах счисления, отличных от десятичной, являются строковыми данными. Арифметические операторы для этих данных действуют так, как будто это десятичные числа, независимо от того, принадлежат они к числовому или строковому типу. Иначе говоря, арифметика остается десятичной, независимо от системы счисления операндов.
Пример:
<?php
$a=decbin(4)+decbin(200)+decbin(255);//возвращает 22112211
$a1=dechex(6)+dechex(250)+dechex(255); //возвращает 6
$a2=bindec(001)+bindec(110)+bindec(10); //возвращает 9
echo "$a <br> $a1 <br> $a2 ";
?>
В окне веб-браузера это будет выглядеть ТАК.
Числа в РНР храняться и выводятся в наиболее эффективном формате. Например, если переменная имеет значение 16.00, оно будет отражено на экране как 16. В приложениях можно отобразить число в некотором определенном формате, например, разделить группы разрядов пробелом, отобразить два знака после разделительной точки для представления денежных сумм и т.д. Мы уже рассматривали функции форматирования строки printf() и sprintf(). А теперь остановимся на функции форматирования чисел:
number_format(число, точность, разделитель1, разделитель2)
Эта функция возвращает строку, содержащую отформатированное число и принимает следующие параметры:
число — число(float), которое требуется отформатировать; если следующие параметры не используются, то число будет представлено без дробной части(с округлением до ближайшего целого) и запятыми в качестве разделителя групп по три разряда;
точность — целое число, указывающее, сколько знаков в дробной части числа следует показать(по умолчанию 0); этот параметр обязателен, если будут использоваться параметры разделитель1 и разделитель2; если указывается меньшее количество знаков, чем есть в числе, то происходит округление в большую сторону;
разделитель1 — строка с символом, который используется для разделения целой и дробной частей числа(по умолчанию — точка); этот параметр обязателен, если будет использоваться параметр разделитель2;
разделитель2 — строка с символом, который используется для разделения групп по три разряда в целой части числа(по умолчанию —запятая); этот параметр обязателен, если используется разделитель1.
Такким образом, функция number_format() может принимать один, два или четыре параметра, но не три.
Пример:
<?php
$a=number_format(1234567890); //выводит 1,234,567,890
$a1=number_format(1234.567, 3); //выводит 1,234.567
$a2=number_format(1234.567, 3, ",", " "); //выводит 1 234,567
$a3=number_format(1234.567, 3, "рублей", " "); //выводит 1 234р567
echo "$a <br> $a1 <br> $a2 <br> $a3" ;
?>
В окне веб-браузера это будет выглядеть ТАК.
Третий и четвертый параметры могут быть строковыми и состоять из нескольких символов, но в качестве разделителей будут использованы лишь первые символы.
В западной традиции в качестве разделителя целой и дробной частей числа принято использовать точку, а для разделения групп разрядов — запятую. В отечественных документах применяют запятую и пробел соответственно.
Внимение! Математические вычисления следует выполнять до форматирования чисел. Не забывайте, что функция форматирования возвращает текстовую строку и применяется для вывода чисел в надлежащем виде.