Delphi - Redondeo de decimales

 
Vista:

Redondeo de decimales

Publicado por Meizan (11 intervenciones) el 07/04/2006 10:46:58
¿por qué cuando guardo el text numérico con decimales de un EDIT se me guarda redondeado? ¿Alguien sabe cómo se hace para que no se guarde redondeado?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Redondeo de decimales

Publicado por Dr Juzam (821 intervenciones) el 07/04/2006 16:05:19
El edit almacena una cadena de texto. La pregunta es dónde lo almacenas, ya que tendrás que hacer alguna conversión por medio. Normalmente, cuando queremos pasar de un numero decimal a una cadena o viceversa se usa FloatToStr o StrToFloat.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondeo de decimales

Publicado por Meizan (11 intervenciones) el 07/04/2006 16:48:22
Lo almaceno en un atributo numérico de una tabla de mi base de datos, pero eso..se me guarda redondeado y no se como acerlo, cuando tendria q pasarlo a float? porq en la consulta SQL que utilizo ( Insert into tabla.....) no se como ponerlo.. :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondeo de decimales

Publicado por Dr Juzam (821 intervenciones) el 07/04/2006 21:01:55
¿El tipo de la tabla es flotante? Realmente, si haces el insert into y lo añades a la tabla no hay paso por medio (al menos que yo sepa) en el cual se redondee el valor. Supongo que lo pones como parámetro (Query1.Params[0].Value...). Yo te recomendaría poner un break point antes de hacer la inserción y hacerle el seguimiento a la variable. Con esto verás si lo que se inserta está ya redondeado o se redondea al escribirse en la base de datos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondeo de decimales

Publicado por Meizan (11 intervenciones) el 08/04/2006 12:37:17
Sabes que hice, puse otro EDIT y me puse otro boton para acer una simple prueba, al pulsar dicho boton, lo que hay en el EDIT q kiero almacenar en la BD sin redondear, se almacena en una variable para despues mostrarlo en otro EDIt aver si hay perdia los decimales:

var float1: real;
begin
float1:=StrToFloat(edit5.text);
// y por probar hice que lo mostrara en otro EDIT
edit6.text:=FloatToStr(float1);

y perfectamente lo del primer EDIT se pasa a la variable float, y en el EDIT6 se muestra correctamente el numero con sus decimales tal y como lo escribi en el EDIT5;

En el onclick del boton para guardar, mi consulta SQL es una cosa asi:
var ins:String;
var float: real;
begin
float:=StrToFloat(edit5.text);
//la probe de varias maneras
1. ins:='Insert into numero (num) values(float)';
2. ins:='Insert into numero (num) values('+edit5.text+')';
3. ins:='Insert into numero (num) values('''+edit5.text+''')';
Query1.close;Query1.sql.Clear;Query1.sql.add(ins);Query.execsql;
end;

y nada, todos fallaban.
Mi base de datos esta echa en Acces, el campo lo he probado a poner de varios tipos y nada, incluso dentro de los numericos con diferentes formatos... pero nada, como mucho o me da fallo o se guarda redondeado,
estoy ya un poco desquiziado con este tema :(
Gracias por vuestra atención, un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondeo de decimales

Publicado por Dr Juzam (821 intervenciones) el 08/04/2006 16:35:32
Prueba con la SQL así:

ADOQuery1.SQL.Add ('Insert into XX values :MiFloat');
ADOQuery1.Parameters[0].Value:=StrToFloat(Edit1.Text);

Esto tendría que funcionar (vaya, a mi me ha funcionado en las tablas Access).

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redondeo de decimales

Publicado por Meizan (11 intervenciones) el 17/04/2006 10:35:51
gracias Dr Juzam por tu atencion, lo q pasa q nunca e utilizado ADO con delphi, siempre e utilizado Query's normales y sus elementos, nunca los de ADO, e intentado acerlo como tu dices, colocando mi ADOQuery1, pero no se como conectarlo a la base de datos, si esq hay q acerlo ni que opciones hay que tocarle de sus propiedades, he buscado por este foro algo sobre su utilizacion y sus propiedades pero no encontre nada... :( si fueses tan amable de decirme como es te lo agradeceria enormemente, gracias de antemano por tu atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar