我的应用程序需要处理高达10^45的正数。 我有一个表统计:somenumber BIGINT 在这个表,我有以下内容:“somenumber = 775488948283” 我希望MySQL返回我775488948283000000000000000000000000000.MySQL计算大数BIGINT绕过
我试图
SELECT
(
SELECT somenumber FROM stats LIMIT 1
)*1000000000000000000000000000 as bignumber;
但我得到了一个MySQL错误:错误1690(22003):BIGINT值超出范围....
我不明白,当我做一个双选择我不在统计表中,所以MySQL为什么告诉我它太大了,我怎么才能让MySQL把这个数字乘以10000 00000000000000000000000并给我结果?
我知道,但我想让MySQL返回数字* 1000000000000000000000,我不要求它在数据库中插入,所以我不明白为什么我受限于BIGINT最大值。 MySQL无法给出大于BIGINT最大值的输出数字? – user3124040
正确。 '*'(乘)是算术运算符。对于BIGINT,它是在运行MySQL服务器的机器上使用64位寄存器实现的。任意精度算术类以各种语言存在,但没有一个是内置于MySQL中的。你可以将你的号码转换成一个字符串,并将其前置到一堆零。 –
@OllieJones更准确地说不是一个字符串,而是一个'varchar' – deW1