2010-12-08 149 views
5

Digamos que tengo 3 conjuntos de números y quiero el% de su diferencia.Cálculo de porcentaje negativo y positivo

30 - 60 
94 - 67 
10 - 14 

Quiero una función que calcular el porcentaje de la diferencia entre cada 2 números, y el más importante es el apoyo a porcentajes positivos y negativos.

Ejemplo:

30 - 60 : +100% 
94 - 67 : -36% (just guessing) 
10 - 14 : +40% 

Gracias

+3

30 - 60 es + 100% me – Eineki

+0

Los números que está proporcionando realmente no ningún sentido. ¿Podría decirnos qué números realmente deberíamos generar en lugar de inventar cosas que parecen correctas? –

+0

Eineki, lo siento :) – Ryan

Respuesta

15

Ésta es matemáticas bastante básico.

% de diferencia de X a Y es 100*(y-x)/x

+1

cuidado con el error dividir por cero en C# – Adween

4

para x - y el porcentaje es (y-x)/x*100

3

matemática simple:

function differenceAsPercent($number1, $number2) { 
    return number_format(($number2 - $number1)/$number1 * 100, 2); 
} 

    echo differenceAsPercent(30, 60); // 100 
    echo differenceAsPercent(94, 67); // -28.72 
    echo differenceAsPercent(10, 14); // 40 
6

La cuestión importante es si uno de sus números es una conocida referencia, por ejemplo, un valor teórico.

sin número de referencia, utilice la diferencia ciento como

100*(y-x)/((x+y)/2) 

La distinción importante aquí está dividiendo por el promedio, que simetriza la definición.

De su ejemplo, parece que podría querer por ciento de error, es decir, está pensando en su primer número como número de referencia y desea saber cómo el otro se desvía de eso. Entonces la ecuación, donde x es número de referencia, es:

100*(y-x)/x 

Véase, por ejemplo, wikipedia, por una pequeña discusión sobre este.

0
$c = ($a > $b) ? ($a-$b)/$a*-100 : ($b-$a)/$b*100; 

en Ucrania a los más pequeños de estos cálculos matemáticos a la edad de 12 :)

+1

Escribo aplicaciones de nivel empresarial y no puedo calcular eso también. Hay miles de razones por las que las personas podrían haber pasado por alto eso. – Herr

-1

Si se necesita el porcentaje de un sistema de votación a continuación Andrey Korolev es la única que respondió correctamente.

Ejemplo

10 votos para 1 voto en contra = 90%
10 votos para 5 votos en contra = 50%
10 útiles para 3 votos en contra = 70%
100 útiles para 1 voto contra = 99 %
1000 votos por 1 voto en contra de 99.9%

1 votos para 10 voto en contra = -90%
5 votos para 10 votos en contra = -50%
3 votos para 10 votos en contra = -70%
1 votos para 100 voto contra = -99%
1 votos para 1000 voto en contra = -99,9%

function perc(a,b){ 
console.log((a > b) ? (a-b)/a*100 : (b - a)/b*-100); 

}

Cuestiones relacionadas