Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 16-05-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 28
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por darkerbyte Ver Mensaje
Me podrías explicar un poco mas sobre este método que inventaste. ¿Cómo determinas el valor ficticio? ¿Podrias mostrarnos como lo usabas, por ejemplo para obtener dólares y euros?
Por supuesto que puedo explicarlo mejor. Eso sí, no lo inventé yo ya que no es sino un cambio de unidad, algo parecido a (por ejemplo) pasar de kilómetros a millas.

Verás, primero tenemos una tabla denominada divisa, más o menos así:
Código SQL [-]
CREATE TABLE divisas
  nombre VARCHAR (32),
  simbolo VARCHAR (4),
  valor INTEGER,
  num_decimales INTEGER
Ahora imaginemos que nuestra moneda principal serán los euros. En principio podríamos ponerle el valor "1", pero tiene céntimos así que sería más lógico que fuera "100". Sin embargo hay divisas cuyo valor es inferior al céntimo de euro (como la antigua peseta, por ejemplo) así que le damos el valor "10.000". Pues damos de alta a la divisa:
Código SQL [-]
INSERT INTO divisa (nombre, simbolo, valor, num_decimales)
VALUES ('euro', '€', 10000, 2);
Ahora metemos dólares. Primero, tenemos que saber cuántos euros es un dólar, que según Google, cuando escribo esto es 1U$ = 0'707063565€. Multiplicamos por el valor del euro, esto es, por 10.000, y nos sale 7.071:
Código SQL [-]
INSERT INTO divisa (nombre, simbolo, valor, num_decimales)
VALUES ('dólar estadounidense', 'U$', 7071, 2);
Ahora vamos a por los productos:
Código SQL [-]
CREATE TABLE productos
  nombre VARCHAR (256)
  precio INTEGER;
Como ves, el precio es un entero. Para introducir el precio, pues sólo tenemos que multiplicarlo por el valor de la divisa en la que hayamos introducido el precio:
Código SQL [-]
%VALOR_DIVISA% = SELECT valor FROM divisas WHERE nombre=%DIVISA_SELECCIONADA%;
INSERT INTO productos (nombre, precio)
VALUES ('chocolatina', (1.20 * %VALOR_DIVISA%));
Y ya está. Ahora todos los cálculos los hacemos con enteros, pero cuando mostremos el precio tenemos que dividir por el valor de la divisa y nos dará el precio.

Por ejemplo, nuestra chocolatina:
Código:
En euros:
  12.000 / 10.000 = 1'20€
En dólares:
  12.000 / 7.071 = 1'68U$
Que conste que esto no soluciona completamente el tema del redondeo. Es más, según Google la chocolatina cuesta 1'70U$: dos centavos más.

Espero que haya quedado más claro.

Última edición por Ñuño Martínez fecha: 17-05-2011 a las 10:12:08.
Responder Con Cita
 



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
ayuda con mi tarea no entiendo!! chairez0490 Varios 3 16-12-2009 04:20:58
Cable de red que no lo entiendo Petolansa Redes 2 21-04-2009 14:55:33
no entiendo Intraweb davidvamo Internet 15 24-04-2008 05:34:16
No lo entiendo ramonibk MS SQL Server 11 20-05-2004 20:23:20
No entiendo rastafarey Firebird e Interbase 1 03-12-2003 17:14:30


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


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