2011-06-29 53 views
4

我需要存储SQLServer 2008 R2货币汇率数据。存储和绘制货币汇率

使用此数据的应用程序是用C#开发的。持有货币汇率的列将被要求以两种方式存储转换 - 也就是说,我宁愿有一个固定的精度但是可变的规模。

什么数据类型应该在SQL Server上选择,可以映射到C#避免任何数据丢失?我正在查看MSDN提供的mappings matrix,我似乎无法找到任何可以安全处理的内容。

  • 浮点数(53)可能是一种可能性,但 浮点数是近似值。
  • 钱只精确到十万分之一 单位

我留下了十进制的。但是这些提供了固定的比例这就是我被难倒的地方:

如果我需要存储一个像0.0104182这样的数字,而且还有123.673,我已经建立了一个10的精度作为我的要求。但是,我应该如何设定一个可以完全适应这种精度的量表?

+1

我已经从来没有尝试过,但你可以使用bigint吗?您必须转换所有数字(并确保您保留所有数字的相同精度),但它可能是一种快速,简单,“无损”的存储和计算值的方式。 –

+0

这将意味着货币汇率表上的另一个字段告知bigint其规模。但它肯定会解决我的问题。 –

回答

14

对于汇率我会使用十进制(19,9)左右。

你必须允许 “电话号码” 利率

例子,以目前的速度1英镑是

  • 13,835.87699印尼盾
  • 33,016.24786越南盾