Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   posiciones decimales (https://www.clubdelphi.com/foros/showthread.php?t=14170)

karocs 11-09-2004 19:01:59

posiciones decimales
 
Saludos


Tengo un campo de tipo float pero solo necesito guardar dos cifras decimales
ej: cuando voy a guardar 180,30 me y digo en delphi
fieldByName('campo').asfloat:=strtofloat(cant.text) me guardar un monton de cifras decimales y necesito minimo dos, hay alguna funcion que me permita hacer eso en delphi o que ? :(

Gracias de antemano

hebert ordonez 11-09-2004 19:20:41

Manipula El Edit
 
Me Imagino Que El Numero Decimal Que Mencionas Es Producto De Una Operacion Aritmetica Cuyo Resultado Se Expresa En El Edit Que Mencionas, Si Asi Es Lo Que Puedes Hacer Es Lo Siguiente:

Selecciona El Edit Y En La Paleta De Propiedades Busca La Que Se Llama Mask Y Alli Pon ###,###.00 Esto Hara Que Cuando Obtengas El Resultado Solo Te Lo Muestre Con Dos Decimales Y Te Facilite Asi Que Lo Guardes De Esa Manera. Ok
Espero Te Sirva Mi Sugerencia.
Saludos

marcoszorrilla 11-09-2004 19:43:26

Hace tiempo y con motivo del Euro cree para mi uso esta:

Código Delphi [-]
function RoundEuros(Const X: Double): Double;
var
r:Int64;  //resto
X2:Int64; //número
x1:double;  //resultado
begin
x2:=trunc((abs(x)*1000)+0.5); //Tomo los 3 primeros decimales.

r:=(x2 mod 10);//Compruebo si el 3 decimal es >=5
x2:=trunc(x2/10);//desprecio el tercer decimal

  if r >= 5  then  //Si el 3 decimal era >= 5 sumo 1 al número
          x2:=x2+1;

  x1:=x2/100; //Construyo el número con los 2 decimales

  if x < 0 then
  result:=0 - x1
  else
  result:=x1;

end;

Un Saludo.

karocs 11-09-2004 19:47:39

Saludos

Gracias por responder.

seleccione el Edit me pero en la paleta de propiedades no aparece Mask, y la coloco en el codigo y no la reconoce.

Gracias..

karocs 11-09-2004 20:05:48

saludos nuevamente

probe la funcion de marcoszorilla y si me toma los decimales que quiero, pero yo creo que es le tipo de dato en interbase que es flotante, porque actualizo el registo y me vuelve a traer el monton de decimales. :confused:

Muchas gracias..

jachguate 11-09-2004 21:44:01

Entonces no uses un campo de coma flotante en interbase. Usa un Numeric(x,y)

Hasta luego.

;)

jaime cotino 12-09-2004 20:24:01

Yo para que me muestre dos decimales en las propiedades del campo en diplayFormat pongo la mascara que te han pasado y solo me muestra dos decimales. Para ello abres el table que contiene los datos seleccionas el campo que quieres ponerle la máscara y veras que en las propiedades está DisplayFormat


La franja horaria es GMT +2. Ahora son las 22:53:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi