我正在尝试,但无法存储大额价值
$var = rand(100000000000000,999999999999999);
echo $var; // prints a 9 digit value(largest possible)
如何获得期望值?
我正在尝试,但无法存储大额价值
$var = rand(100000000000000,999999999999999);
echo $var; // prints a 9 digit value(largest possible)
如何获得期望值?
PHP 整数通常是 32 位的。其他包提供更高精度的整数: http: //php.net/manual/en/language.types.integer.php
如果您需要处理非常大的数字,我发现 BC Math 取得了成功。这是您需要了解的所有内容的链接:
如果您想生成数字并作为本机类型进行操作,您不能使用大多数 PHP 安装(您有 32 位或 64 位int
,没有别的),正如其他答案已经说明的那样。但是,如果您只是生成一个数字并想要传递它,那么一个可能的技巧就是连接字符串:
$var = rand(0,PHP_INT_MAX).str_pad(rand(0, 999999999), 9, 0, STR_PAD_LEFT);
echo $var;
在 PHP 使用 32 位整数的平台上,这允许您获得大于 32 位(> 10 个小数位)的近似随机整数(作为字符串)。当然,这种结构存在偏差,这意味着您不会以相同的概率覆盖所有数字。调用的限制rand()
遵循正常的十进制规则,因此可以轻松调整所需数字的上限。
如果您所做的只是存储/传输/显示此值,则该字符串会很好。平等和大于/小于测试也将起作用。只是不要用它做任何数学运算。