PHP 숫자
이 장에서는 정수, 부동 소수점 및 숫자 문자열에 대해 자세히 알아볼 것입니다.
PHP 숫자
PHP에서 주의해야 할 한 가지는 자동 데이터 유형 변환을 제공한다는 것입니다.
따라서 변수에 정수 값을 할당하면 해당 변수의 유형은 자동으로 정수가 됩니다. 그런 다음 동일한 변수에 문자열을 할당하면 유형이 문자열로 변경됩니다.
이 자동 변환은 때때로 코드를 손상시킬 수 있습니다.
PHP 정수
2, 256, -256, 10358, -179567은 모두 정수입니다.
정수는 소수 부분이 없는 숫자입니다.
정수 데이터 유형은 32비트 시스템에서 -2147483648에서 2147483647 사이, 64비트 시스템에서 -9223372036854775808에서 9223372036854775807 사이의 십진수가 아닌 숫자입니다. 이보다 크거나 낮은 값은 정수의 한계를 초과하므로 부동 소수점으로 저장됩니다.
참고: 알아야 할 또 다른 중요한 사실은 4 * 2.5가 10이더라도 피연산자 중 하나가 float(2.5)이기 때문에 결과가 float로 저장된다는 것입니다.
다음은 정수에 대한 몇 가지 규칙입니다.
- 정수에는 최소한 하나의 숫자가 있어야 합니다.
- 정수에는 소수점이 없어야 합니다.
- 정수는 양수 또는 음수일 수 있습니다.
- 정수는 10진수(10 기반), 16진수(16 기반 - 접두사 0x) 또는 8진수(8 기반 - 접두사 0)의 세 가지 형식으로 지정할 수 있습니다.
PHP에는 정수에 대해 다음과 같은 미리 정의된 상수가 있습니다.
- PHP_INT_MAX - 지원되는 가장 큰 정수
- PHP_INT_MIN - 지원되는 가장 작은 정수
- PHP_INT_SIZE - 바이트 단위의 정수 크기
PHP에는 변수의 유형이 정수인지 확인하는 다음과 같은 기능이 있습니다.
- is_int()
- is_integer() - is_int()의 별칭
- is_long() - is_int()의 별칭
예시
변수 유형이 정수인지 확인하십시오.
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP 플로트
float는 소수점이 있는 숫자 또는 지수 형식의 숫자입니다.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5는 모두 부동 소수점입니다.
float 데이터 유형은 일반적으로 최대 1.7976931348623E+308(플랫폼에 따라 다름) 값을 저장할 수 있으며 최대 정밀도는 14자리입니다.
PHP에는 float에 대해 다음과 같은 사전 정의된 상수가 있습니다(PHP 7.2부터).
- PHP_FLOAT_MAX - 표현 가능한 가장 큰 부동 소수점 숫자
- PHP_FLOAT_MIN - 표현 가능한 가장 작은 양의 부동 소수점 숫자
- - PHP_FLOAT_MAX - 표현 가능한 가장 작은 음수 부동 소수점 숫자
- PHP_FLOAT_DIG - 정밀도 손실 없이 부동 소수점으로 반올림할 수 있는 소수점 이하 자릿수
- PHP_FLOAT_EPSILON - 표현 가능한 가장 작은 양수 x, x + 1.0 != 1.0
PHP에는 변수 유형이 float인지 확인하는 다음과 같은 함수가 있습니다.
- is_float()
- is_double() - is_float()의 별칭
예시
변수 유형이 float인지 확인하십시오.
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP 무한대
PHP_FLOAT_MAX보다 큰 숫자 값은 무한으로 간주됩니다.
PHP에는 숫자 값이 유한인지 무한인지 확인하는 다음과 같은 기능이 있습니다.
그러나 PHP var_dump() 함수는 데이터 유형과 값을 반환합니다.
예시
숫자 값이 유한인지 무한인지 확인합니다.
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN은 숫자가 아님을 나타냅니다.
NaN은 불가능한 수학 연산에 사용됩니다.
PHP에는 값이 숫자가 아닌지 확인하는 다음과 같은 기능이 있습니다.
그러나 PHP var_dump() 함수는 데이터 유형과 값을 반환합니다.
예시
잘못된 계산은 NaN 값을 반환합니다.
<?php
$x = acos(8);
var_dump($x);
?>
PHP 숫자 문자열
PHP is_numeric() 함수는 변수가 숫자인지 여부를 찾는 데 사용할 수 있습니다. 이 함수는 변수가 숫자 또는 숫자 문자열이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
예시
변수가 숫자인지 확인하십시오.
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
참고: PHP 7.0부터: is_numeric() 함수는 더 이상 숫자 문자열로 간주되지 않으므로 16진수 형식의 숫자 문자열(예: 0xf4c3b00c)에 대해 FALSE를 반환합니다.
PHP는 문자열과 부동 소수점을 정수로 캐스팅
때때로 숫자 값을 다른 데이터 유형으로 변환해야 합니다.
(int), (integer) 또는 intval() 함수는 종종 값을 정수로 변환하는 데 사용됩니다.
예시
부동 소수점 및 문자열을 정수로 변환:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>