小数点转百分比

Posted zmztyas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小数点转百分比相关的知识,希望对你有一定的参考价值。

复制代码

-- =============================================
-- 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)) + \'%\' [百分数]
--把整型转换为字符型的数据类型,加上百分号

以上是关于小数点转百分比的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript小数转百分比

C#中得到两个数百分比 (转)

Java 数字格式

java 求 两个数的百分比% (转)

Android中ProgressBar百分比怎么设置小数

delphi sql查询结果小于1,转换成百分比后不显示小数点前面的0,比如0.1%,显示结果就是.1%.