viernes, 31 de julio de 2009

Función POWER T-SQL

Ja... qué sensible resultó la funcioncita de T-SQL para el cálculo de potencias...
¿sensible o "agarrada" (como decimos en México a los que no les gusta la idea de soltar un centavito)?

Pues nada, resulta que en el desarrollo de una aplicación de monitoreo climático de Puebla, uno de los cálculos requería logaritmos y potencias. Parecía que todo resultaba bien, pero a la hora de corroborar resultados, el dichoso (ni tanto) cálculo tenía un desfasamiento importante, entonces buscando y rebuscando nos dimos cuenta que la culpa era de la función POWER.

Resulta que esta función que recibe como parámetros una base y un exponente, cuando la base es entera, no importa que el exponente sea fraccionario (con punto decimal o flotante, que es lo mismo), el resultado que devuelve es entero ¿solución? un "casteo" o conversión a "float" de la base o agregarle un punto y tantos ceros como decimales queremos que nos regrese.

POWER(10, @ExponenteDecimal) ---------> resultado entero
POWER(CAST(10 as float), @ExponenteDecimal) ---------------> resultado con punto flotante
POWER(10.0, @ExponenteDecimal) -------------> resultado con 1 decimal luego del punto.

¿preguntas?

No hay comentarios. :

Publicar un comentario