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 22-12-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
Redondeo de precios

Hola foreros,
tengo una duda con el redondeo de precios en Euros, que no he conseguido resolver buscando por el foro, a ver si alguien lo sabe.
Debo redondear precios de artículos con 2 decimales pero éstos deben acabar siempre en 0 ó 5. Por ejemplo :

Precio 2,310€ -> retorno 2,30€
Precio 2,326€ -> retorno 2,35€
Precio 4,88€ -> retorno 4,90€

Gracias por la colaboración.
un saludo
Responder Con Cita
  #2  
Antiguo 22-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Me extraña mucho que tengas que redondear el primer decimal. Yo siempre he visto que se redondee el segundo decimal por culpa del tercer decimal, pero nada más.

Hecha un vistazo a este hilo, seguro que te da info de como buscar en el foro con resultados positivos.

Yo por lo general uso el tipo Currency de delphi y no necesito redondear nada.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 22-12-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
No es tan extraño Lepe, no te has fijado nunca que muchos precios de las tiendas siempre acaban en 5 o 0?
se trata de redondear al segundo decimal y éste a su vez, transformarlo en 5 o 0 según corresponda.

un saludo
Responder Con Cita
  #4  
Antiguo 24-12-2006
Avatar de Spynosa
Spynosa Spynosa is offline
Miembro
 
Registrado: nov 2004
Ubicación: Ecija - Sevilla
Posts: 99
Poder: 20
Spynosa Va por buen camino
efectivamente las tiendas no quieren un precio de 5,78 por ejemplo por eso de las monedas de centimo.
yo uso la siguiente funcion que posiblemente sea rudimentaria pero me sirve:

Código Delphi [-]
function redondear50(num:double):double;
var f,R:double;
begin
   r:=int(num);
   f:= r+0.50;
   if num > f then
   begin
       f:=r+0.75;
       if f < num then result := r+1 else result := r+0.50;
   end else
   begin
       f:=r+0.25;
       if f < num then result := r+0.50 else result := r;
   end;

end;

Última edición por Spynosa fecha: 24-12-2006 a las 12:41:03.
Responder Con Cita
  #5  
Antiguo 24-12-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
En Argentina no hay ese problema conb el redondeo porque si no tienen las monedas no te las dan o si son valores pequeños te dan caramelos, jeje!

En las tiendas, etc los precios son por ejemplo 2.99, 30,90, 300,90 y así.

No obstante hay una ley que obliga a redondear a favor del cliente que se está empezando a aplicar

Saludos
Responder Con Cita
  #6  
Antiguo 27-12-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
Gracias a todos por la colaboración.
Spynosa, adapté tu función para redondear al segundo decimal (poniendo un 0 después de la coma decimal en todas las cifras) y funciona perfectamente.
un saludo
Responder Con Cita
  #7  
Antiguo 27-12-2006
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Ampliando un poco la solución, yo uso una función para redondear a cualquier valor, sea entero o decimal
Código Delphi [-]
  function Redondeo(precio, aproximacion : extended) : extended;
  begin
      if aproximacion <> 0 then
        precio := Round(precio / aproximacion) * aproximacion;
      result := precio;
  end;

En el parámetro Aproximacion, hay que pasarle la cantidad a la que se quiere aproximar, en tu caso sería 0.05.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Redondeo cesar vidal Varios 30 22-04-2014 22:01:29
redondeo de valores JODELSA Varios 1 04-11-2005 20:10:22
Redondeo en quickreport Carlex Impresión 1 01-02-2005 09:32:04
redondeo a 2 decimales torito Varios 4 22-12-2004 18:36:34
Redondeo de Numeros Dayvis Varios 1 11-11-2004 09:09:23


La franja horaria es GMT +2. Ahora son las 00:39:35.


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