mysql - round - redondear siempre hacia arriba
¿Cómo redondear al entero más cercano en MySQL? (6)
¿Cómo redondeo al entero más cercano en MySQL?
Ejemplo: 12345.7344 rounds to 12345
la función round()
mysql redondea.
No sé por cuánto tiempo serán los valores ni las posiciones decimales, podrían ser 10 dígitos con 4 lugares decimales, podrían ser 2 dígitos con 7 lugares decimales.
Prueba esto,
SELECT SUBSTR(12345.7344,1,LOCATE(''.'', 12345.7344) - 1)
o
SELECT FLOOR(12345.7344)
Demostración de SQLFiddle
Use FLOOR , si desea redondear su decimal al entero inferior . Ejemplos:
FLOOR(1.9) => 1
FLOOR(1.1) => 1
Use ROUND() , si desea redondear su decimal al entero más cercano . Ejemplos:
ROUND(1.9) => 2
ROUND(1.1) => 1
Use CEIL() , si desea redondear su decimal al entero superior . Ejemplos:
CEIL(1.9) => 2
CEIL(1.1) => 2
Use FLOOR :
SELECT FLOOR(your_field) FROM your_table
si necesitas decimales puedes usar esto
DECLARE @Num NUMERIC(18, 7) = 19.1471985
SELECT FLOOR(@Num * 10000) / 10000
Salida: 19.147100 Transparente: 985 Agregar: 00
O usa esto:
SELECT SUBSTRING(CONVERT(VARCHAR, @Num), 1, CHARINDEX(''.'', @Num) + 4)
Salida: 19.1471 Transparente: 985
SUBSTR
será mejor que FLOOR
en algunos casos porque FLOOR tiene un "error" de la siguiente manera:
SELECT 25 * 9.54 + 0.5 -> 239.00
SELECT FLOOR(25 * 9.54 + 0.5) -> 238 (oops!)
SELECT SUBSTR((25*9.54+0.5),1,LOCATE(''.'',(25*9.54+0.5)) - 1) -> 239
SELECT FLOOR(12345.7344);
Lea más here .