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 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
  #2  
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
  #3  
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
  #4  
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:47:32.


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