La siguiente declaración:

SELECT ROUND(1.0 / 6.0, 6) AS RoundValue;

Devuelve un resultado inesperado (¿e incorrecto?):

0.166666

Solo si lo modifico así:

SELECT ROUND(1.0 / 6.0000, 6) AS RoundValue;

Volverá:

0.1666670

Que ahora tiene el dígito 7 correcto al final de la parte redondeada (¿pero luego agrega un cero inútil?)

Este comportamiento también ocurre cuando se utilizan contenidos de columnas de tipo NUMERIC(11,3) en lugar de constantes flotantes en la instrucción SELECT.

1
mgr 23 feb. 2021 a las 18:44

1 respuesta

La mejor respuesta

Al final me decanté por lo pragmático

ROUND(field1 / (field2 + 0.000))

Por cierto. en Oracle funciona como se esperaba.

1
mgr 9 mar. 2021 a las 21:20