首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

[++++]小数转换成百分数,该怎么解决

2012-01-28 
[++++]小数转换成百分数取得小数的有效数两位,并转换为百分数。如:1/30.3333331/30000.00333331/3000000

[++++]小数转换成百分数
取得小数的有效数两位,并转换为百分数。

如:1/3=0.333333
  1/3000=0.0033333
  1/300000=0.0000033333333333

结果
33%
0.33%
0.00033%

[解决办法]

SQL code
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%'

就是 
SQL code
select rtrim(cast(@yourFloat * 100 as decimal(10,2))) + '%' 

热点排行