以下代码:
echo (int) "2e2";
echo (int) 2e2;
echo (float) "2e2";
输出
2
200
200
.. 我不知道为什么。谢谢。
最佳答案
“2e2”是 scientific notation ,意思是 2*102 == 200。
- 在您的第一个示例中,将字符串解析为 int 只会读取第一个非数字(因此它会忽略
e
)。 - PHP 解析器将
2e2
视为 float literal值为 200.0,这在转换为 int 时给出 200。 - 将字符串解析为 float 可以理解符号并给出预期结果 200。
关于php - 将指数数类型转换为 int 或 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8090275/