sql server 2000 下通过select convert(decimal(25,17),字段/1.17),结果只能显示到小数点后6位,剩余位数都是0,请教下应该如何操作呢,如字段数值为5.2,那显示为4.4444440000000000

解决方案 »

  1.   

    select convert(decimal(25,17),5.2/1.17) AS err,convert(decimal(25,17),5.2)/1.17 AS correct
    /*
    err                     correct
    4.44444400000000000 4.444444444444444444444
    */
      

  2.   

    我用了 SQL Server2005, 2014 执行 #1 的代码都是 4.444444444444444444444
      

  3.   

    可能是 bug 了。
    看有没有安装 sp4 ?建议至少升级到 SQL Server2008. 
    最好升级到 SQL Server2014  或2016,  2017 .https://blog.csdn.net/yenange/article/details/50549937
    https://blog.csdn.net/yenange/article/details/52980135
    https://blog.csdn.net/yenange/article/details/78622559
      

  4.   

    查看精准度计算公式
    https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/precision-scale-and-length-transact-sql