domingo, 23 de septiembre de 2018

SQL Server Snippets - Aproximación de valor real a N-ésimo decimal superior/inferior

Supóngase que se tiene un valor real o float, que se quiere aproximar al N-ésimo decimal superior. Por ejemplo:

Para aproximar al 3er decimal superior, basta usar la función mátematica integrada de T-SQL llamada CEILING, de la siguiente forma:

El resultado de la operación es 1.902. Observemos paso a paso lo que sucede:
  • El valor se multiplica por 1000, para correr 3 dígitos decimales a la izquierda del punto decimal (10^N, en donde N es la cantidad de dígitos decimales a correr), así: 1.9011*1000 = 1901.1
  • Luego, con la función CEILING, se aproxima el número al entero superior, así: CEILING(1901.1) = 1902
  • Finalmente se divide la cantidad entre 1000, para volver a colocar los 3 dígitos corridos a la derecha del punto decimal: 1902/1000 = 1.902
Si se quisiera aproximar al decimal inferior, basta sustituir la función CEILING por la función FLOOR, de la siguiente manera:

En cuyo caso el resultado de la operación es 1.901

Publicado originalmente el 2013-03-25, en https://itsouvenirs.wordpress.com/2013/03/25/sql-server-snippets-aproximacion-de-valor-real-a-n-esimo-decimal-superiorinferior/.

Related Articles

0 comentarios:

Publicar un comentario

Con la tecnología de Blogger.