数据库中的字段类型为decimal(28,10)
保存里面的数据是1.0005000000
我想将数据后面的多余的0去掉例如
数据库         转换后
1.1110000000   1.111
1.0504680000   1.050468帮忙了,谢谢

解决方案 »

  1.   

    SELECT CONVERT(float, col)
    FROM(
    SELECT col = CONVERT(decimal(28, 10), 1.1110000000) UNION ALL
    SELECT col = CONVERT(decimal(28, 10), 1.0504680000)
    )A
      

  2.   

    decimal的小数位是固定的, 要改显示的话, 必须转换成其他类型
    另外, 建议在程序中处理显示问题.
      

  3.   

    我目前能想到的不同方式的结果比较1,
    print cast(1.1110000000 as decimal(10,3))
    print cast(1.0504680000 as decimal(10,6))
    -------
    1.111
    1.050468
    2,
    select cast(1.1110000000 as decimal(10,3))
    union all
    select cast(1.0504680000 as decimal(10,6))
    --------
    1.111000
    1.050468
    (自动以当列中最长的小数位数为标准加0了)
    3,
    select cast(cast(1.1110000000 as decimal(10,3)) as varchar(50))
    union all
    select cast(cast(1.0504680000 as decimal(10,6)) as varchar(50))
    ------------
    1.111
    1.050468
    (以varchar来显示倒是正确,不过已经不是decimal了)
      

  4.   

    刚看见老大的回帖
    这样也行
    select cast(1.1110000000 as float)
    union all
    select cast(1.0504680000 as float)
    ---
    1.111
    1.050468
      

  5.   

    哈哈,谢谢 
    邹建的方法可行
    另外一位朋友的方法不可行,那是因为我数量的精度是保存在数据库中的,无法事先获知
    因此没法通过decimal来转换,float这个数据类型可以