我有一个在线游戏的数据库,我需要存储用户玩游戏的总分数。每次用户结束比赛,他的分数将自动更新。我试图将这个分数保持为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
复制相似问题