Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2009
Avatar de Crashthebig
Crashthebig Crashthebig is offline
Miembro
 
Registrado: oct 2006
Ubicación: Republica Dominicana
Posts: 59
Poder: 18
Crashthebig Va por buen camino
es muy simple el redondeo solo debes incluir en la seccion uses la libreria math y utilizar la funcion SimpleRoundTo().
Esta funcion te permite redonder un numero de la siguiente forma:

SimpleRoundTo(1234567, 3) 1234000
SimpleRoundTo(1.234, -2) 1.23
SimpleRoundTo(1.235, -2) 1.24
SimpleRoundTo(-1.235, -2) -1.23
ej:
Código Delphi [-]var a,b,c:real begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.text); c:=a/b; edit3.text:=floattostr(SimpleRoundTo(c,-2));

este codigo lo que hace es que hacer una division de dos numeros reales y formatea la salida para que el resultado de la division solo tenga dos cifras decimales ej:
53/3=17,6666666666667;
pero con simpleroundto:
53/3=17.67
__________________
Marcos: Delphi programmer
Desde Republica Dominicana Pa'l mundo entero
http://webhacker.webcindario.com
Responder Con Cita
  #2  
Antiguo 15-04-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Lightbulb

Mira aqui
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 03-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Poder: 14
novato_erick Va por buen camino
Siguiendo este post que tiene muchos años ya sin embargo me esta pasando algo curioso respecto al redondeo con la función
Código Delphi [-]
 function SimpleRoundTo(variable, -2)
//Resultado en una suma de 11.21 + 0.78 = 11.99 con la función me redondea a 12.00

En este caso como verán ese centavo me está causando diferencia en el desarrollo que estoy realizando mucha diferencia a la hora de los reportes de ventas.

Alguna mejor idea de funciones que me retorne valores deseados reales... espero alguna gran ayuda...


Saludos


novato_erick
Responder Con Cita
  #4  
Antiguo 03-04-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y cual es el problema?
Responder Con Cita
  #5  
Antiguo 03-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola novato_erick.

A mi tampoco me queda claro si lo que esperas es 11.99 y obtenes 12 o viceversa.

El método común de redondeo consiste en verificar el valor del próximo dígito a la derecha del que se quiere redondear. Si este es menor a 5, el dígito a redondear no se altera, caso contrario se incrementa su valor en uno.

Si el valor a redondear a dos cifras es 11.99, entonces:
Código Delphi [-]
  Resultado:= SimpleRoundTo(11.99); // el segundo parámetro es -2 por defecto
dejará en la variable "Resultado" el valor 11.99, para hacerlo mas claro agreguemos un cero a la derecha: 11.990. Como queremos redondear a dos cifras, revisamos el valor de la tercera (0), es menor que cinco y por tanto no se tiene que alterar el valor de la segunda.

Para lograr el resultado 12 a partir de 11.99 habría que hacer:
Código Delphi [-]
Resultado:= SimpleRoundTo(11.99, -1);

Si estas obteniendo otro comportamiento, sinceramente no sé que puede estar pasando...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:36:19.


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
Copyright 1996-2007 Club Delphi