类型转换指数数字到int或float

时间:2011-11-11 06:04:03

标签: php casting

以下代码:

echo (int) "2e2";
echo (int) 2e2;
echo (float) "2e2";

输出

2
200
200

..我不明白为什么。感谢。

1 个答案:

答案 0 :(得分:4)

“2e2”是scientific notation,意思是2 * 10 2 == 200。

  1. 在第一个示例中,将字符串解析为int只读取第一个非数字的数字(因此忽略e)。
  2. PHP解析器将2e2视为值为200.0的float literal,并在转换为int时给出200。
  3. 将字符串解析为浮点符合表示法,并给出200的预期结果。