2013-01-17 81 views
1

我使用apache的BigFraction類,它基本上使用BigInteger作爲分子和分母。現在我需要將這些值存儲在數據庫中,並且由於數據的性質,我需要確保它們儘可能準確。Java分數映射到SQL服務器

我設置sql服務器有分子和分母的列,它們被設置爲numeric(35,0)類型。

現在我遇到的問題是,一旦我的計算超過了這個值,並且最終導致數據截斷異常。

關於在sql server中使用的類型的任何建議,並確保精確的數量?

回答

0

問題是,數字是Sql Server MSDN on datatypes中最大的數值類型,因爲您發現需要先定義小數點後的數字。

因此,您必須將BigNumbers存儲爲字符串 - varchar(4000)以保留所有有效數字並注意它需要超過3999,那麼您將不得不拆分多個列,您可能也可以直接存儲在varbinary列中是二進制的,但是您將無法輕鬆查看存儲在數據庫中的內容。如果你的數字在分子和分母中總是少於35位有效數字,你可以保存在兩個數字字段中。