doubleval()
함수의 사용법
doubleval()
함수는
인수로 전달된 값을 부동소수점 숫자(float)로 변환하여 반환합니다.
doubleval()
함수는 floatval()
함수의 별칭입니다. floatval()
함수와 동일하게 작동합니다.
doubleval()
함수는 숫자와 단위가 함께 포함된 문자열을 부동소수점 숫자로 변환하여 수치 계산에 활용할 때 매우 유용합니다.
/* 문자열을 부동소수점 숫자로 변환 */
echo doubleval('3.14'); // 출력: 3.14
echo doubleval('100.58px'); // 출력: 100.58 (문자 이후의 부분은 무시됨)
echo doubleval('50.6%'); // 출력: 50.6 (문자 이후의 부분은 무시됨)
/* 주의!
정수를 부동소수점 숫자로 변환하면 출력 시 소수점이 표시되지 않음 */
$int = 42;
echo doubleval($int); // 정수처럼 출력: 42 (소수점이 포함된 형태로는 보여주지 않음)
// 데이터 타입은 부동소수점 숫자(float)으로 변환됨
var_dump(doubleval($int)); // float(42)
doubleval()
함수는 변환된 값을 반환하며, 인수로 전달된 원본 변수나 값은 변경되지 않습니다.
$var = '3.14';
var_dump(doubleval('3.14')); // float(3.14)
/* 원본 변수나 값은 변경되지 않습니다. */
var_dump($var); // string(4) "3.14"
doubleval()
함수의 형식은 다음과 같습니다.
구문
doubleval(mixed $value): float
매개변수
$value |
부동소수점 숫자로 변환할 값입니다.
어떤 자료형이든 가능하지만, 객체는 사용할 수 없습니다. 객체를 사용하면 E_WARNING 레벨의 에러가 발생하고 1 이 반환됩니다. |
---|
반환 값
지정된 변환 기준에 따라 값을 부동소수점 숫자로 변환하여 반환합니다.
지정된 변환 기준
지정된 변환 기준은 doubleval()
함수의 작동 원리를 이해하는데 매우 중요한 개념입니다.
문자열을 변환할 경우
숫자로 시작하는 문자열의 경우 숫자 부분만 추출하여 부동소수점 숫자로 변환합니다. 숫자가 아닌 문자가 나오면 그 이후의 문자는 무시됩니다.
/* 숫자 문자열 */
echo doubleval('3.14'); // 출력: 3.14
/* 숫자로 시작하는 문자열 */
echo doubleval('100.58px'); // 출력: 100.58 (문자 이후의 부분은 무시됨)
echo doubleval('50.6%'); // 출력: 50.6 (문자 이후의 부분은 무시됨)
숫자가 아닌 문자로 시작하는 문자열은 0
을 반환합니다.
/* 숫자가 아닌 문자로 시작하는 문자열 */
echo doubleval('abc'); // 출력: 0 (0을 반환합니다.)
echo doubleval('abc123'); // 출력: 0 (0을 반환합니다.)
하지만, 문자열에서 숫자 앞에 있는 부호(+
또는 -
)를 인식하고 해당 부호를 유지한 채로 숫자를 부동소수점 숫자로 변환합니다.
/* 숫자가 아닌 문자로 시작하는 문자열: 양수와 음수 부호 */
echo doubleval('+42.195'); // 출력: 42.195
echo doubleval('-42.195'); // 출력: -42.195
빈 문자열(''
)은 0
을 반환합니다.
/* 빈 문자열 */
echo doubleval(''); // 출력: 0 (0을 반환합니다.)
정수
정수를 부동소수점 숫자로 변환하면 출력 시 소수점이 표시되지 않지만, 데이터 타입은 부동 소수점 숫자로 변환됩니다.
$int = 42;
echo doubleval($int); // 정수처럼 출력: 42 (소수점이 포함된 형태로는 보여주지 않음)
// 데이터 타입은 부동소수점 숫자(float)으로 변환됨
var_dump(doubleval($int)); // float(42)
배열
빈 배열은 0
을 반환하고, 비어 있지 않은 배열은 1
을 반환합니다.
/* 배열 */
echo doubleval([]); // 출력: 0 (빈 배열)
echo doubleval([1, 2, 3]); // 출력: 1 (비어있지 않은 배열)
객체
객체를 사용하면 E_WARNING 레벨의 에러가 발생하고 1
을 반환합니다.
/* 객체 */
class MyClass {}
$obj = new MyClass();
echo doubleval($obj); // 출력: 1
// Warning: Object of class MyClass could not be converted to float in...
부울(boolean)
true
는 1
, false
는 0
을 반환합니다.
/* 부울(boolean) */
echo doubleval(true); // 출력: 1 (true는 1로 변환)
echo doubleval(false); // 출력: 0 (false는 0으로 변환)
NULL
NULL
은 0
을 반환합니다.
/* NULL */
echo doubleval(NULL); // 출력: 0