-1
1000000
대신 100
및 1e6
대신 1e2
과 같이 과학 표기법을 사용할 때 if 문을 입력하지 않은 이유가 궁금했습니다.php에서 과학 표기법이 정수와 다른 이유는 무엇입니까?
는 다음 코드와 같이 사람들이 동일한 경우에만 동일하지 있으며, 밝혀 :
<?php
echo "Integer: " . 100; // prints 100
echo "\n";
echo "Scientific notation: " . 1e2; // prints 100
echo "\n";
echo "Equality: ";
if(100 == 1e2) {
echo "as expected";
} else {
echo "wtf php";
}
// prints "Equality: as expected"
echo "\n";
echo "Identity: ";
if(100 === 1e2) {
echo "as expected";
} else {
echo "wtf php";
}
// prints "Identity: wtf php"
내가 run it on different php versions해야하고이 동작에서 동일로, 적어도 일관성있는 것 같다 : 4.3.0-5.0.5, 5.1.1-5.6.27, hhvm-3.10.0-3.13.2, 7.0.0-7.1.0RC5.
아직 : 왜!?
과학 표기법은 PHP에서 부동 유형이므로 정수 유형이 아닙니다. –
http://stackoverflow.com/questions/80646/how-do-the-php-equality-double-equals-and-identity-triple-equals-comp?rq=1 –
예, ===는 같은 가치와 같은 유형. 1e2는 double이며 100은 정수이므로 같은 유형이 아닙니다. –