Foros Club Delphi

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

alcides 31-03-2007 18:34:04

Como usar solo dos posiciones decimales
 
Hola a todos,

como puedo realizar una operacion matematica con una variable que tiene cuatro posiciones decimales, de la cual solo quiero que me tome las dos primera posiciones decimales sin redondearla.


Gracias mil,


Alcides
Rep.Dom.

gluglu 31-03-2007 18:39:47

Pienso que para lo que tu quieres, es decir sin redondear previamente el número, lo mejor sería convertirlo a String con los cuatro decimales, despreciar los dos últimos caracteres, y volver a convertir ese string a número.

Saludos ;)

alcides 31-03-2007 18:44:26

Gracias gluglu,
parece una buena salida, voy a chequear.


Gracias mil,

Alcides
Reo.Dom.

Lepe 31-03-2007 19:43:11

Siempre habrá que hacer comprobaciones, como por ejemplo si tiene 3, 5 o 4 decimales.


Otra forma:

Multiplica por 10^(Nº de decimales), después te quedas con la parte entera (Trunc), y al final divides por 10^(nº de decimales)

Si no recuerdo mal 10^N es la función IntPower.
Código Delphi [-]
var x:Extended;
    decimales:integer;
begin
  x:= 122.345;
  decimales := 3;
  if decimales > 0 then
    x := Trunc(x * IntPower(10.0,decimales)) / IntPower(10.0,decimales);

saludos

alcides 31-03-2007 19:56:25

Gracias Lepe,

lo voy a probar, porque la verdad, que no he podido resolver.


Gracias Mil.

Alcides
Rep.Dom.

droguerman 31-03-2007 20:28:35

una forma algo más elegante es usando la funcion format, sobre todo para los que están acostumbrados con el printf:

Código Delphi [-]
convertido := format('$4.4f', [nro]);

alcides 02-04-2007 15:23:03

Gracias Droguerman,
sabes quiero dejar el valor con dos decimales, no solo por la impresion del campo sino para efectuar una operacion matematica, y con el format no he podido hacerlo.


ejemplo: Dep_Mensual:= 476.45333 quiero dejarlo en 476.45

eso es lo que no he podido realizar.

de todas maneras

Gracias Mil,


Alcides
Rep.Dom.

Jovana Macias 02-04-2007 17:22:56

EditImporteParc.Text := FormatCurr('###,###,##0.00', Saldo);

con esta funcion podras soluicionar tu problema

alcides 02-04-2007 18:13:29

ok.

Gracias Jovana Macias

ahora si, funciono. saque el reporte y los calculos estan perfecto.



Gracias mil,


Alcides
Rep.Dom.

Jovana Macias 02-04-2007 19:31:31

de nada ayudenme a ver lo de mi pregunta

aplicacion en delphi internet html access

graxias


La franja horaria es GMT +2. Ahora son las 07:50:14.

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