Al usar Oracle Database, puede usar funciones como TO_CHAR(number)
para devolver números como una cadena. Esto le permite formatear el número para que tenga un número específico de lugares decimales, incluso sin lugares decimales, si eso es lo que desea.
También puede usar funciones como ROUND(number)
y TRUNC(number)
para redondear o truncar el número sin decimales.
También está el CAST()
función que le permite convertir un tipo de datos como un número entero, lo que elimina efectivamente cualquier lugar decimal.
El TO_CHAR()
Función
Aquí hay un ejemplo que usa el TO_CHAR(number)
función:
SELECT TO_CHAR(1234.56, 'fm99G999')
FROM DUAL;
Resultado:
1,235
En este caso mi modelo de formato consta de:
- una
fm
, que es un modificador de formato que elimina cualquier carácter de relleno inicial o final que pueda agregarse al resultado. - múltiples
9
caracteres, que representan cada dígito - una
G
carácter, que representa un separador de grupo consciente de la configuración regional
Lo importante a tener en cuenta es que no usa la D
elemento de formato, que es el carácter decimal consciente del formato. Tampoco utiliza caracteres decimales literales (como una coma o un punto). Y debido a que no tiene caracteres decimales, obviamente no hay dígitos que sigan a dicho carácter.
Si hicimos tener un carácter decimal, cualquier 9
o 0
los elementos a la derecha podrían dar lugar a que se incluyan decimales en el resultado.
Ejemplo:
SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;
Resultado:
7.00
Para suprimir los ceros finales, podemos cambiar el 0
caracteres a 9
s. Sin embargo, eliminar el fm
El modificador puede hacer que aparezcan ceros finales incluso cuando se usa el 9
elemento de formato.
Aquí hay una comparación para ilustrar lo que quiero decir:
SELECT
TO_CHAR(7, 'fm99D00') AS "r1",
TO_CHAR(7, 'fm99D99') AS "r2",
TO_CHAR(7, '99D99') AS "r3"
FROM DUAL;
Resultado:
r1 r2 r3 _______ _____ _________ 7.00 7. 7.00
El ROUND()
Función
Aquí hay un ejemplo que usa el ROUND(number)
función:
SELECT ROUND(1234.56, 0)
FROM DUAL;
Resultado:
1,235
El ROUND()
función redondea un número a un lugar decimal dado. Aquí, especificamos cero lugares decimales, lo que elimina todos los lugares decimales del número.
En este caso, el número se redondeó hacia arriba.
El TRUNC()
Función
Aquí hay un ejemplo que usa el TRUNC(number)
función:
SELECT TRUNC(1234.56, 0)
FROM DUAL;
Resultado:
1234
El TRUNC()
función trunca un número a un lugar decimal dado. No se produce redondeo. Por lo tanto, este número se truncó a cero decimales, sin redondeo.
El CAST()
Función
Aquí hay un ejemplo que usa CAST()
función:
SELECT CAST(1234.56 AS INT)
FROM DUAL;
Resultado:
1,235
El CAST()
La función convierte su argumento a un tipo de datos diferente. En este caso convertimos el número a un entero. Los números enteros no tienen lugares decimales, por lo que todas las partes fraccionarias se eliminan del resultado (incluido el carácter decimal). Tenga en cuenta que el resultado se ha redondeado.