簡體   English   中英

類型為int的算術溢出錯誤,值= 4957500001.400178

[英]Arithmetic overflow error for type int, value = 4957500001.400178

我知道過去也曾問過類似的問題,但我認為我的情況略有不同。 我有一列具有對數值,並嘗試使用以下公式將其求反: SELECT POWER(10,CAST(9.695262723 AS NUMERIC(30,15)))

假設值9.695262723是該列的值之一。 嘗試運行此查詢時,我收到一個Arithmetic overflow error for type int, value = 4957500001.400178Arithmetic overflow error for type int, value = 4957500001.400178

另一方面,相同的查詢對於較小的值也適用,例如SELECT POWER(10,CAST(8.662644523 AS NUMERIC(30,15)))

我如何克服該錯誤並計算我擁有的log10項的逆值? 僅作參考,表中存在的較大值(對數10刻度)為12.27256096

這里的問題是您的第一個輸入參數( 10 ),默認情況下,SQL Server將其視為數據類型int int的最大值為2 ^ 31-1(2,147,483,647),並且數字4,957,500,001遠遠大於此值,因此您需要使用bigint

SELECT POWER(CONVERT(bigint,10),CONVERT(numeric(30,15),9.695262723));

編輯:如果需要保留小數位,則使用具有足夠大的比例和精度的numeric ,而不是bigint

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM