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.