SQL Server货币数据类型需要更高的精度。

3
我正在处理这个旧的SQL Server数据库,它使用MONEY数据类型存储数字值。多年来一直很好用,但现在为了进行货币汇率转换,我们需要高达10位小数。我们正在探索从MONEY数据类型转换为DECIMAL的可能性。
我发现一个MONEY字段相当于DECIMAL(19,4)。如果使用更广泛的DECIMAL(25,10)来容纳10个小数位,是否安全呢?
如果我们想确保未来请求有更多的空间,那么哪个限制将不再适用于基于该数据库构建的经典ASP应用程序(使用Double数据类型)?
谢谢

3
哇,这是一个非常酷的问题。你使用什么货币需要10个小数位? - Pablo Santa Cruz
1 JPY = 0.00810349 USD - ab_732
1个回答

6

您应该将类型定义为十进制数decimal(25,10),这可以保持联邦赤字的精度高达10位数字(小数点后有10位,共25位数字)。


除了经典的ASP双精度数据类型只能处理15个有效数字。 - Dijkgraaf
有什么比 @Dijkgraaf 更好的解决方案呢? - ab_732
1
不要使用经典的ASP ;-) 可以使用ASP.NET,其中包含具有29个有效数字的十进制类型。 - Dijkgraaf
一个double是一个科学数。它有一个指数和尾数,非常适合科学,但是在四舍五入时会与十进制数有很大的不同。 - benjamin moskovits

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接