PHP:为什么乘以“ 1E3”会返回双精度而不是整数?

我有以下代码:


$waitTimeInMs = random_int(500, 1000);

// 1E3 = 10 to the power of 3 = 1000

echo gettype($waitTimeInMs) .'|'.gettype($waitTimeInMs * 1E3) . '|' . gettype($waitTimeInMs * 1000) .'|' . $waitTimeInMs * 1E3;

这返回integer|double|integer|759000。

因此,实际上:

  • random_int()返回一个int;

  • 乘以1E3返回a double;

  • 乘以1000返回int

那么,为什么乘以1E3返回双精度值而不是intif 1000 = 1E3


慕容森
浏览 323回答 2
2回答

噜噜哒

您的假设是错误的:// 1E3 = 10 to the power of 3 = 10001E3是的简写形式+1.000E3。根据定义,它是科学计算机符号中的浮点数:// 1.23E4   => 1.23 * 10^4 // computer => scientific notation of a real number顺便提一句: 0.123e5 === 1.23e4 === 12.3e3 === 123e2 === 12300e0 === 12300.0
打开App,查看更多内容
随时随地看视频慕课网APP