我知道可以用Numeric,但我的数据库中已经用了大量的MONEY,我很奇怪,如果MONEY只能这样,那他还有存在的必要吗?

解决方案 »

  1.   

    为什么没有,不同的类型有不同的特点,Money存放的精度小,但它占用的空间也小。照你这么说还要int干嘛
      

  2.   

    难道说误差在两毛钱以上是在MOENY的正常的误差范围内吗?我进行计算的MOENY只有8189.5787,难道MONEY的精度不可以调节吗?
      

  3.   

    declare @f_qcsl float, /*期初数量*/
            @m_qcdj moeny, /*期初单价*/ 
            @f_scsl float, /*生产数量*/
            @m_scje moeny, /*生产金额*/ 
            @f_trsl float, /*投入数量*/
            @m_trje moeny, /*投入金额*/ 
            @f_qmsl float, /*期末数量*/
            @m_qmdj moeny, /*期末单价*/
            @m_qmje moeny, /*期末金额*/ 
            @f_hysl float, /*耗用数量*/
            @m_hyje moeny /*耗用金额*/   set @f_hysl = @f_qcsl + @f_scsl + @f_trsl - @f_qmsl
       set @m_qmdj = (@m_qcdj * @f_qcsl + @m_scje + @m_trje) / (@f_qcsl + @f_scsl + @f_trsl)
       set @m_qmje = @m_qmdj * @f_qmsl
       set @m_hyje = @m_qmdj * @f_hysl这是一个存储过程中的一部分,计算的时候有期初数量和单价,生产数量和金额,投入数量和金额,期末数量,要根据关系算出期末金额、耗用数量和耗用金额。实验的值其中之一为生产数量5432,生产金额8981。6431,其他有的值为0,算出来的耗用金额误差在两毛钱。
    我将定义中的money改为float后计算才正确。谢谢关注!