请教各位,oracle 保留两位小数,但不用四舍五入,不能转换成字符,还要是数字,代码是什么?

时间:2022-01-27 01:15:15
请教各位,oracle 保留两位小数,但不用四舍五入,不能转换成字符,还要是数字,代码是什么?

10 个解决方案

#1


trunc(x[,y])
【功能】返回x按精度y截取后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。
【返回】数字

#2


使用trunc()函数。

#3


代码请参考:

SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;

  Truncate
----------
      15.7

SELECT TRUNC(15.79,-1) "Truncate" FROM DUAL;

  Truncate
----------
        10

#4



--四舍五入
select round(1.66,1) r_num from dual

  r_num
-----------
  1.7


select round(1.66,0) r_num from dual

  r_num
-----------
  2

#5


trunc()是直接截断,round()会四舍五入

#6


trunc()是直接截断,round()会四舍五入

#7


trunc(x[,y])
【功能】返回x按精度y截取后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。
【返回】数字

#8


这种 .00 就无力了…

#9


可以结贴了

#10


引用 8 楼  的回复:
这种 .00 就无力了…


正解,这2个确实不能是数字精确到N位小数,对于整数要精确到小数点后N位没办法实现。

#1


trunc(x[,y])
【功能】返回x按精度y截取后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。
【返回】数字

#2


使用trunc()函数。

#3


代码请参考:

SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;

  Truncate
----------
      15.7

SELECT TRUNC(15.79,-1) "Truncate" FROM DUAL;

  Truncate
----------
        10

#4



--四舍五入
select round(1.66,1) r_num from dual

  r_num
-----------
  1.7


select round(1.66,0) r_num from dual

  r_num
-----------
  2

#5


trunc()是直接截断,round()会四舍五入

#6


trunc()是直接截断,round()会四舍五入

#7


trunc(x[,y])
【功能】返回x按精度y截取后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。
【返回】数字

#8


这种 .00 就无力了…

#9


可以结贴了

#10


引用 8 楼  的回复:
这种 .00 就无力了…


正解,这2个确实不能是数字精确到N位小数,对于整数要精确到小数点后N位没办法实现。