Ver Mensaje Individual
  #1  
Antiguo 26-11-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Question problemas con cast en procedimiento almacenado

Buen dia, estoy haciendo un procedimiento almacenado donde tengo que transformar un valor que es string (varchar(100)) en un float. Aclaro que estoy usando Firebird 1.5

Ahora, este es el store:

Código Delphi [-]
CREATE PROCEDURE RECUPEROIVA (
    NBR_VAR VARCHAR(100))
RETURNS (
    IVA FLOAT)
AS
begin
  /* Procedure Text */
  NBR_VAR = upper(NBR_VAR); /*lo paso a mayusculas por las dudas*/
  select cast(valor_var as float) from variables_entorno
  where nbr_var = :nbr_var
  into IVA;
end

El problema es que si le paso en valor_var un '0.21' me devuelve un 0.209999993443489 que ya sabemos que no es 0.21, igual ocurre con cualquier cosa que tenga decimales.
tal vez cast no se la sentencia adecuada para tal transformación, o quizas falta algun parámetro, no se cual podria ser, para que esto no ocurriera. Bueno, gracias una vez mas.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita