Foros del Web » Programando para Internet » PHP »

Calcular porcentaje entre dos cifras

Estas en el tema de Calcular porcentaje entre dos cifras en el foro de PHP en Foros del Web. Hola a todos! Resulta que tengo varios artículos en una tienda y el de menor valor cuesta 1.000 euros y el de mayor valor 2.000, ...
  #1 (permalink)  
Antiguo 06/09/2017, 05:55
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 2 meses
Puntos: 18
Calcular porcentaje entre dos cifras

Hola a todos!

Resulta que tengo varios artículos en una tienda y el de menor valor cuesta 1.000 euros y el de mayor valor 2.000, mientras que el artículo más vendido tiene un coste de 1.400 euros.

Necesitaría saber como calcular que 1.400 euros es el 40% entre 1.000 y 2.000.

Gracias!
  #2 (permalink)  
Antiguo 06/09/2017, 09:14
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Calcular porcentaje entre dos cifras

Esto es más mates que progra.

Me confundes un poco con el dato "el que más se vendio", ¿Quieres sacar el porcentaje de la utilidad del articulo con respecto al total, o simplemente el porcentaje del valor del producto entre los rangos? por como dice el titulo se que es el segundo pero ese "mas vendido" puede cambiar las cosas

Para el primer caso seria
p=100*d*d_u/t

Donde p seria el procentaje, d el dato, d_u utilidad del dato, y t el total, entonces si por ejemplo vendiste 17.500 y del producto de 1.400 vendiste 5 unidades:

p=100*1.400*5/17.500=700.000/17.500=40

Para el segundo caso sería:
p=100*(d-min)/(max-min)

Donde p es el porcentaje, d seria el dato, max el valor maximo del rango, y min el valor minimo del rango, entonces
p=100*(1400-1000)/(2000-1000)=100*(400)/1000=40000/1000=40

En ambos casos puedes hacer funciones

function utility($d, $du, $t){
return 100*$d*$du/$t;
}

function rangePercent($min, $max, $d){
return 100*($d-$min)/($max-$min);
}

De no ser así no entiendo lo que pides, y necesitaría más info.

Eso por mi parte.

Última edición por alvaro_trewhela; 06/09/2017 a las 09:41
  #3 (permalink)  
Antiguo 06/09/2017, 09:58
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Calcular porcentaje entre dos cifras

Prueba asi:

Esto nos da que 1400 es el 70% de 2000
Código PHP:
Ver original
  1. $mayor = 2000;//Articulo mas caro de la tienda
  2. $vendido = 1400;//Articulo vendido
  3. $porcentaje = '';//Porcentaje final
  4.  
  5. //Calculamos el nivel de porcentaje en que se encuentra el precio vendido en relacion al mas caro de la tienda
  6. $porcentaje = round(($vendido / $mayor)*100,2);
  7.  
  8. % de echo $porcentaje.' %';//Esto retorna que 1400 es el 70% de 2000

Si quieres saber que porcentaje se ahora en base al percio mas caro, seria algo así mas o menos:

Código PHP:
Ver original
  1. $mayor = 2000;//Articulo mas caro de la tienda
  2. $vendido = 1400;//Articulo vendido
  3. $porcentaje = '';//Porcentaje final
  4.  
  5. //Calculamos el nivel de porcentaje en que se encuentra el precio vendido en relacion al mas caro de la tienda
  6. $porcentaje = 100-(round(($vendido / $mayor)*100,2));
  7.  
  8. % de echo $porcentaje.' %';//Esto no da que se ahorro el 30% al comprar en 1400 en base al articulo mas caro

MUESTRA Funcional

Espero sea lo que buscas
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 07/09/2017, 10:21
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 2 meses
Puntos: 18
Respuesta: Calcular porcentaje entre dos cifras

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Esto es más mates que progra.

Para el segundo caso sería:
p=100*(d-min)/(max-min)

Donde p es el porcentaje, d seria el dato, max el valor maximo del rango, y min el valor minimo del rango, entonces
p=100*(1400-1000)/(2000-1000)=100*(400)/1000=40000/1000=40
Efectivamente se trataba de esto! Mil gracias!

Etiquetas: calcular, porcentaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:22.