2013-01-17 51 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位有效数字,你可以保存在两个数字字段中。