小数点转百分比

复制代码

-- =============================================
-- Author:        <Author,,CC>
-- Create date: <Create Date,, 2014-05-26 10:43:07.080>
-- Description:    <Description,,小数点转换为百分数,并对第3位进行4舍5入>
-- Environment:    <Version,, Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64))>
-- =============================================

/*------------------------------------------------------------------------
2种思路的计算方法:
1种是直接decimal 类型可以设置精度为4,小数位为2,这样会自动的把小数为3的数字进行四舍五入掉
2种是就是我们对小数点位数进行加法计算来满足达到四舍五入的条件(即变量+0.005)这个时候可以使用int类型
以下为实现方法:
--------------------------------------------------------------------------*/
                
-------------------------    方法1    ---------------------------------------
declare @i int = 3
declare @it int = 7

select (@i*1.0)/@it [小数点] 
-- 因为数据类型为int所以,需要*1.0来进行转换,如果直接是带有小数点位数可以跳过这一步

select ((@i*1.0)/@it)*100 [分子]
--把小数点转换为所需要的百分比分子值需要乘以100

select CAST( ((@i*1.0)/@it)*100 as decimal(5,0)) [4舍5入之后2位小数点的百分数]    
--保留2位小数点,也是对小数位进行4舍5入的一步

select LTRIM(CAST( ((@i*1.0)/@it)*100 as decimal(5,0)))+'%'     [百分数]
-- 加%号以合成百分比,也可以使用下面的方法来进行转换因为另外的一种方法,只能使用转换varchar类型

select CAST(CAST( ((@i*1.0)/@it)*100 as decimal(5,0)) as varchar(10))+ '%'  [百分数]

-------------------------    方法2    -----------------------------------------
declare @i int = 3 
declare @it int = 7

select (@i*1.0)/@it    [小数点]
-- 因为数据类型为int所以,需要*1.0来进行转换,如果直接是带有小数点位数可以跳过这一步

select ((@i*1.0)/@it)+0.005 [4舍5入]
-- 对得到的结果进行+0.005以取得第三位小数点4四5入的结果

select (((@i*1.0)/@it)+0.005)*100 [带小数点的分子]
-- *100 把小数点转换为百分比的分子

select CAST((((@i*1.0)/@it)+0.005)*100 as int) [分子]
-- 把第2位小数点之后的数字进行截取,转换为整数

select CAST(CAST((((@i*1.0)/@it)+0.005)*100 as int) as varchar(10)) + '%' [百分数]
--把整型转换为字符型的数据类型,加上百分号
posted @   zmztyas  阅读(2089)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示