php中intval函数溢出的解决办法
关于使用intval强制转换成数字的问题。数字大于2147483647会出现溢出出现负数。使用个方法来替代这个吧
$n="\n";
$a=2147483648.05555;
echo intval($a).$n; //result -2147483648
echo (int) $a,$n;//result -2147483648
echo floatval($a).$n;//result 2147483648.0556
echo floor(floatval($a)).$n;//result 2147483648
呵呵。。好早就发现这个问题了。。这样解决就完全ok
php手册的这两句话:
The integer value of var on success, or 0 on failure. Empty arrays and objects return 0, non-empty arrays and objects return 1.
The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647. So for example on such a system, intval('1000000000000') will return 2147483647. The maximum signed integer value for 64 bit systems is 9223372036854775807.
编程中发现,php中整型数的范围是,且一定是-2147483648 到2147483647
而mysql数据库的整形范围,可以有两种,在建表时确定
无符号0 到4294967295
有符号同上
php里的办法就是:不能使用intval,用floatval取代之。
$a = 21474836470; // 看上去是整数,实际是浮点数
$a = floatval(21474836470 ) //确保是一个数字
评论

React 18的并发渲染确实是个重大改进,我们在项目中已经升级使用,性能提升明显!