首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >echo与echo intval PHP

echo与echo intval PHP
EN

Stack Overflow用户
提问于 2012-12-05 18:03:32
回答 3查看 449关注 0票数 2

请解释一下结果的不同之处

代码语言:javascript
复制
echo intval(1e10); 

输出1410065408

代码语言:javascript
复制
echo 1e10; 

输出10000000000

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 18:17:16

有符号整数有一个最大值。在32位系统上,这是2^16或2147483647。当intval-ing一个更大的数字时,它将溢出。你找到的值也可以计算出来:

代码语言:javascript
复制
php > echo 1e10 % (2147483647);
1410065408
票数 5
EN

Stack Overflow用户

发布于 2012-12-05 18:07:29

摘自PHP手册:

最大值取决于系统。32位系统的最大有符号整数范围为-2147483648到2147483647。例如,在这样的系统上,intval('1000000000000')将返回2147483647。64位系统的最大有符号整数值为9223372036854775807。

intval将截断数字

票数 4
EN

Stack Overflow用户

发布于 2012-12-05 18:26:02

代码:

代码语言:javascript
复制
<?php

echo 'intval: ' . intval( 1e10 ) . PHP_EOL;
echo '1e10: ' . 1e10 . PHP_EOL;

从cli运行

输出:

代码语言:javascript
复制
intval: 10000000000
1e10: 10000000000

Ubuntu 12.10 x64 php5.4

换句话说,您正在使用一台x86 (32位)机器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13720581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档