提问人:k0pernikus 提问时间:11/8/2016 更新时间:11/8/2016 访问量:138
为什么科学记数法与php中的整数不同?
Why is scientific notation not identical to integer in php?
问:
我只是想知道为什么在使用科学记数法时没有输入我的 if 语句,即 而不是 和 代替 .1e2
100
1e6
1000000
事实证明,它们只是相等而不完全相同,如以下代码所示:
<?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"
我已经在不同的 php 版本上运行了它,它似乎至少是一致的,因为这种行为是相同的: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。
然而:为什么!?
答:
1赞
malukenho
11/8/2016
#1
===
运算符,在 PHP 中,考虑操作数的类型。 even 返回一个数字,并且是一个整数。
因此,它在值 () 上相等,但在类型 () 上不相等。1e2
float
100
==
===
评论