我有一个在线游戏的数据库,我需要存储用户玩游戏的总分数。每次用户结束比赛,他的分数将自动更新。我试图将这个分数保持为VARCHAR,然后从脚本中检索它,解析为int,添加最后一个分数,再次解析到string,并更新数据库。但是正如我所看到的,php不能管理大的数字。我该怎么做?
发布于 2015-02-27 14:14:07
MySQL具有BIGINT
类型。PHP本身在BIGINT
中运行得完美无缺。
除非你想要比这个大得多的数字,否则我不知道你还会用别的什么。
注:未签名的BIGINT是BIGINT的两倍
18,446,744,073,709,551,615可以将数字存储到:unsigned BIGINT
9,223,372,036,854,775,807可以将数字存储到:signed BIGINT
(或者将8
放在负数的末尾)。
因此,基本上,你可以存储的数字在1,8*10^19左右。需要更多吗?然后看看在另一个答案这里。
供比较:
INT
可以存储高达2,147,483,647或两倍的unsigned
,这意味着BIGINT
大约比INT
大4,294,967,295 。是。BIGINT
基本上非常接近INT^2
发布于 2015-02-27 14:08:13
你需要使用BC
您可以使用BC在PHP中以字符串的形式处理数字,因此它们是任意大的,因为您已经在数据库中使用了。
诚挚的问候。
https://stackoverflow.com/questions/28766853
复制相似问题