SQL 整数不变 四舍五入保留2位小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 整数不变 四舍五入保留2位小数相关的知识,希望对你有一定的参考价值。

cast(round(100,2) as decimal(10,2))
这样整数也会保留2位小数 结果为100.00
我想要如果是整数就不改变,如果是小数才四舍五入保留2位
当然最好连1-2位小数都不改变,要超过2位小数才四舍五入保留2位最好
如果不行,整数不变,不是整数保留2位小数也行

参考技术A 你就直接用
select round(100.146,2) from dual--100.15
select round(100.14,2) from dual--100.14
select round(100.1,2) from dual--100.1
select round(100,2) from dual--100追问

直接round是不行的,不然我也不会提问了
round只是四舍五入,并不负责截断,我就是开始光round,才发现怎么出现科学计数
另外,我是插入,不是查询

追答

那你把你的出现科学计数的数据贴出来看看,插入和查询跟这个有什么关系,我这只是测试用,到时候替换不就行了,插入不还是insert into table select 字段转换 from table 么,都要用到select 的

追问

update findj set ddyl=round(dingd*jyongl,2) where scid='SF0034'
ddyl是nvarchar类型的

追答

我是指round(dingd*jyongl,2),这个里面你说出现了科学计数法,那么具体是什么数据会出现这个呢?

jsjava做四舍五入

保留整数

//保留整数至百位数
Math.round(num/100)*100

//保留整数至千位数
Math.round(num/1000)*1000

 

 

保留小数

//保留小数至百分位
Math.round(num*100)/100

//保留小时至千分位
Math.round(num*1000)/1000


//传入整数自动填充小数点和补0
 function toDecimal2(x)  
       var f = parseFloat(x); 
       if (isNaN(f))  
        return false; 
        
       var f = Math.round(x*100)/100; //百分位
       var s = f.toString(); 
       var rs = s.indexOf(‘.‘); 
       if (rs < 0)  
          rs = s.length; 
          s += ‘.‘; 
        
       while (s.length <= rs + 2)  
        s += ‘0‘; 
        
       return s; 

 

以上是关于SQL 整数不变 四舍五入保留2位小数的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft SQL 四舍五入为整数,需要保留 1 位小数 [重复]

js保留小数位

oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是否有函数可以直接写出来;

oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是否有函数可以直接写出来;

1.4726保留整数 保留一位小数 保留两位小数 保留三位小数各是多少

sql 查询出的结果进行除法运算,结果无法四舍五入。求助!