[英]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.400178
的Arithmetic 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.