program tip

PHP에서 float과 double의 차이점은 무엇입니까?

radiobox 2020. 8. 4. 07:37
반응형

PHP에서 float과 double의 차이점은 무엇입니까?


이 코드가 있습니다

$vad = 1.1;

print gettype($vad);

var_dump($vad);

이것은 출력됩니다 :

double
float(1.1) 

PHP에서 이중 또는 부동입니까?


PHP에는 차이가 없습니다. float, double또는 real동일한 데이터 유형이다.

C 레벨에서는 모든 것이로 저장됩니다 double.
실제 크기는 여전히 플랫폼에 따라 다릅니다.

자세한 내용은 매뉴얼을 참조하십시오 :
http://www.php.net/manual/en/language.types.float.php


PHP의 경우에는 동일합니다. http://www.php.net/manual/en/language.types.float.php :

부동 소수점 숫자 ( "floats", "doubles"또는 "real numbers"라고도 함)는 다음 구문 중 하나를 사용하여 지정할 수 있습니다. [...]

혼란스러운 부분은 gettype (사용하지 말아야 할)이 "float"대신 "double"을 반환하는 이유입니다. 대답은 http://de2.php.net/manual/en/function.gettype.php입니다 .

"double"(역사적인 이유로 단순히 "float"가 아니라 float의 경우 "double"이 리턴 됨)


Windows에서 PHP 7.0.6부터 xdebug 없이이 명령 비교합니다 .

$ php -r 'var_dump(28.4);'
float(28.4)

xdebug 함께 :

$ php -r 'var_dump(28.4);'
Command line code:1:
double(28.4)

var_dump () 출력 만 변경되지만 실제 메모리 관리는 변경되지 않습니다.

이것은 다른 머신에서 var_dump double대신에 왜 보이는지에 대한 우려를 해결할 수 float있습니다.

또한 xdebug의 유무에 관계없이 gettype여전히을 반환합니다 string(6) "double".


PHP 7.0.14에서

function test(double $a) {
    var_dump($a);
}
test(2.2111);

"치명적 오류 : catch되지 않은 TypeError : test ()에 전달 된 인수 1은 double, float 제공 인스턴스 여야합니다"를 리턴합니다.

function test(float $a) {
    var_dump($a);
}
test(2.2111);

화면에 2.2111을 인쇄합니다.

참고 URL : https://stackoverflow.com/questions/3280892/difference-between-float-and-double-in-php

반응형