Oracle - Limitar decimales a un FLOAT

 
Vista:

Limitar decimales a un FLOAT

Publicado por Christian Coaguila (1 intervención) el 20/06/2013 00:39:11
Hola a todos,
Deseo saber si es posible limitar el número de decimales (Escala) de un tipo de dato FLOAT desde alguna configuración de la BD?

No quiero truncarlo ni redondearlo ya que implicaría realizar muchos cambios en mis SP, PKG o FNC.

Necesito saber esto ya que mi aplicación cliente no soporta más de 18 decimales y deseo aplicar alguna solución de la forma más transparente, tanto para mi aplicación cliente y como para mi programación en BD.

Espero me puedan ayudar.
Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Limitar decimales a un FLOAT

Publicado por Alixandro (63 intervenciones) el 26/06/2013 20:51:23
Christian, puedes crearte una funcion que te devuelva la cadera formateada con los decimales que dees. te dejo estos ejempo para que te guies. puedes crear tu funcion a partir de estos ejemplos.

Qry Eje.
Select To_Number(8959898.56665656) rst from dual

Select To_Char(To_Number(8959898.56665656),'999,999,999,999.99') rst from dual;

Select To_Number(To_Char(To_Number(8959898.56665656),'999,999,999,999.99'),'999,999,999,999.99') rst from dual;

Utilizando Round, Eje.

Select Round(8959898.56665656,0) rst from dual

Select Round(8959898.56665656,1) rst from dual

Select Round(8959898.56665656,2) rst from dual

Select Round(8959898.56665656,3) rst from dual

Select Round(8959898.56665656,4) rst from dual

Create Or Replace function fn_xxxxxxx(pParam1 Number, pDecim Number) Return number Is
Begin
Return Round(pParam1,pDecim);
End;

Uso

1-
Select fn_xxxxxxx(8959898.56665656,2) rst From Dual;

2-

Declare
vVar Number := fn_xxxxxxx(8959898.56665656,2) ;
Begin
Dbms_Output.Put_Line(vVar);
End;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar