日期:2014-05-18 浏览次数:20569 次
select cast(cast(1.0 * 1/3 * 100 as decimal(18,6)) as varchar) + '%' select cast(cast(1.0 * 1/3000 * 100 as decimal(18,6)) as varchar) + '%' select cast(cast(1.0 * 1/300000 * 100 as decimal(18,6)) as varchar) + '%' /* ------------------------------- 33.333300% (所影响的行数为 1 行) ------------------------------- 0.033300% (所影响的行数为 1 行) ------------------------------- 0.000333% (所影响的行数为 1 行) */
------解决方案--------------------
手误的地方,更正一下.
没有 rtrim ... as的写法。
我写的语句你仔细看一下。
先将数 * 100 即0.33333*100 得到33.333
再用cast 保留两位小数 cast(33.333 as decimal(10,2)) 得到 33.33
再用 rtrim 隐式转换33.33为 varchar型 得到 '33.33', 然后两个varchar数据进行相连 '33.33' + '%' 得到 '33.33%'
就是
select rtrim(cast(@yourFloat * 100 as decimal(10,2))) + '%'