【问题标题】:Round And Show To 2 Decimal Places? [duplicate]四舍五入并显示到 2 个小数位? [复制]
【发布时间】:2015-02-09 11:13:07
【问题描述】:

我有一个小问题要问。如何将数字字段四舍五入到小数点后 2 位,并且只显示小数点后 2 位

例如以下将返回 255.88000000000

select round(255.87908765444,2)

如何只得到255.88?

请帮忙。

谢谢,

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    你只需要:

    CAST(255.87908765444 as decimal(18,2)). 
    

    当您转换目标数据类型的小数位数少于源数据类型的数据类型时,该值会四舍五入。 来自microsoft

    【讨论】:

      【解决方案2】:

      如果你需要它作为一个字符串,这应该可以工作:

      select format(round(255.87908765444,2), 'N2');
      

      【讨论】:

        【解决方案3】:

        使用字符串函数子字符串和字符索引

        select SUBSTRING(convert(varchar(20),round(255.87908765444,2)),
                         1,
                         CHARINDEX('.',convert(varchar(20),255.87908765444))+2)
        

        【讨论】:

          【解决方案4】:
          select round(convert(decimal(18,2),255.87908765444),2)
          

          【讨论】:

          • 想解释一下投反对票的原因吗?
          【解决方案5】:

          是的,我们可以使用上面的解决方案是..

          ROUND(CAST(psd.Price AS DECIMAL(20,4)), 2)
          

          【讨论】:

            猜你喜欢
            • 2012-03-28
            • 1970-01-01
            • 2012-07-26
            • 1970-01-01
            • 2015-11-24
            • 2012-03-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多