我的應用程序需要處理高達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