1. 소수점 처리
실수형 자료를 정수형으로 변경 하려면 소수점을 처리해야 합니다.
일반적으로 반올림, 버림, 올림이 있습니다.
버림 : floor
올림 : ceil
반올림 : round
반올림은 반올림되는 정밀도와 어떤 방식으로 반올림 할 것인가에 대한 두 가지 매개변수를 갖고있습니다.
round(숫자, 정밀도, 방식)
방식에 대한 부분은 거의 사용하지 않는 것 같아 제외하였습니다.
코드로 확인해보겠습니다.
<?php
echo floor(3.1)."<br/>";
echo ceil(3.1)."<br/>";
echo round(3.12345, 0)."<br/>";
echo round(3.12345, 1)."<br/>";
echo round(3.12345, 2)."<br/>";
echo round(3.12345, 3)."<br/>";
echo round(3.12345, 4)."<br/>";
?>
반올림 round에서 정밀도의 매개변수 숫자에 대한 설명입니다.
0은 소수점 첫째자리, 1은 둘째자리, 2는 셋째자리... 에서 반올림 하는 옵션이라고 보면 되겠습니다.
2. 쉼표 넣기
숫자 출력 시 가독성을 위해 쉼표를 넣어야 할 경우가 있습니다.
이런 경우에 사용하는 함수가 number_format 입니다.
number_format 함수는 한 개, 두 개 혹은 네 개의 매개변수를 받습니다.
사용법은 다음과 같습니다.
number_format(숫자, 소수점자릿수, 소수점기호, 천 단위기호);
코드로 확인해보겠습니다.
<?php
$a = 12345.12345;
echo number_format($a)."<br/>";
echo number_format($a, 3)."<br/>";
echo number_format($a, 4, "-", "-")."<br/>";
?>
number_format($a)는 정수형을 나타냅니다. (만약 소수점 첫 번째자리가 5이상이면 반올림되어 나타납니다)
number_format($a, 3)은 소수점 네 번째자리에서 반올림한 실수를 나타냅니다. (0이 첫 번째자리이기 때문)
number_format($a, 4, "-", "-")는 소수점 다섯 번째자리에서 반올림하고 소수점과 천 단위기호를 "-" 로 지정합니다.
3. 최소값, 최대값, 절대값
이건 그냥 바로 코드로 확인하겠습니다.
<?php
$a = -3;
$b = 3;
$c = 33;
$adata = [$a, $b, $c];
echo min($a, $b, $c)."<br/>";
echo max($a, $b, $c)."<br/>";
echo abs($a)."<br/>";
echo "<br/>";
echo min($adata)."<br/>";
echo max($adata)."<br/>";
echo abs($adata)."<br/>";
?>
adata 라는 배열변수를 만들어서도 테스트 해 본 것입니다.
마지막에 절대값인 abs에는 배열을 넣어도 아무런 값이 출력되지 않았습니다.
한 개의 데이터만을 처리합니다.
4. 랜덤
난수를 생성하기 위해 숫자를 무작위로 뽑기 위한 함수를 확인해보겠습니다.
먼저 가장 기본이 되는 rand 함수입니다.
매개변수를 안받을수도 있고 받는다면 2개를 받는데 이것도 코드로 바로 확인해보겠습니다.
<?php
for($i=0 ; $i <10 ; $i++){
echo rand()."<br/>";
}
echo "<br/>";
for($i=0 ; $i <10 ; $i++){
echo rand(1,100)."<br/>";
}
?>
위쪽은 범위가 없는 무작위 난수생성이고, 아래는 1~100까지 범위를 지정한 난수생성입니다.
같은 난수생성함수인 앞에 mt만 붙은 mt_rand 라는 함수가 있습니다.
메르센느 트위스터 알고리즘을 사용하며 속도도 더 빠르다고 합니다.
<?php
for($i=0 ; $i <10 ; $i++){
echo mt_rand()."<br/>";
}
echo "<br/>";
for($i=0 ; $i <10 ; $i++){
echo mt_rand(1,100)."<br/>";
}
echo getrandmax()."<br/>";
echo mt_getrandmax();
?>
난수를 생성할 수 있는 최대값을 알아내기 위해 getrandmax 함수를 이용하여 비교해본 것 입니다.
범위는 동일하나 php7.1 이상 버전에서부터 mt_rand 함수를 지원하며 알고리즘 구현체의 오류가 수정되었다고 하니 7.1 이상버전을 사용하는 것을 권고한다고 합니다.
'php' 카테고리의 다른 글
[php 내장함수] 날짜 관련 함수 (0) | 2021.08.23 |
---|---|
[php 내장함수] 문자 관련 함수 (0) | 2021.08.22 |
클래스 및 객체(8) (0) | 2021.08.20 |
클래스 및 객체(7) (0) | 2021.08.19 |
클래스 및 객체(6) (0) | 2021.08.18 |