matematicas app math formula

math - app - Calcula el porcentaje guardado entre dos números?



math formula watch (7)

100% - precio con descuento / precio completo

Tengo dos números, el primero es el precio original, el segundo es el precio con descuento.

Necesito calcular qué porcentaje ahorra un usuario si compra al segundo precio.

example 25, 10 = 60% 365, 165 = 55%

Lo que no sé es la fórmula para calcular esto.


Esta es una función con opción invertida

Volverá:

  • ''change'' - cadena que puede usar para la clase css en su plantilla
  • ''resultado'' - resultado simple
  • ''formateado'' - resultado formateado

function getPercentageChange( $oldNumber , $newNumber , $format = true , $invert = false ){ $value = $newNumber - $oldNumber; $change = ''''; $sign = ''''; $result = 0.00; if ( $invert ) { if ( $value > 0 ) { // going UP $change = ''up''; $sign = ''+''; if ( $oldNumber > 0 ) { $result = ($newNumber / $oldNumber) * 100; } else { $result = 100.00; } }elseif ( $value < 0 ) { // going DOWN $change = ''down''; //$value = abs($value); $result = ($oldNumber / $newNumber) * 100; $result = abs($result); $sign = ''-''; }else { // no changes } }else{ if ( $newNumber > $oldNumber ) { // increase $change = ''up''; if ( $oldNumber > 0 ) { $result = ( ( $newNumber / $oldNumber ) - 1 )* 100; }else{ $result = 100.00; } $sign = ''+''; }elseif ( $oldNumber > $newNumber ) { // decrease $change = ''down''; if ( $oldNumber > 0 ) { $result = ( ( $newNumber / $oldNumber ) - 1 )* 100; } else { $result = 100.00; } $sign = ''-''; }else{ // no change } $result = abs($result); } $result_formatted = number_format($result, 2); if ( $invert ) { if ( $change == ''up'' ) { $change = ''down''; }elseif ( $change == ''down'' ) { $change = ''up''; }else{ // } if ( $sign == ''+'' ) { $sign = ''-''; }elseif ( $sign == ''-'' ) { $sign = ''+''; }else{ // } } if ( $format ) { $formatted = ''<span class="going ''.$change.''">''.$sign.''''.$result_formatted.'' %</span>''; } else{ $formatted = $result_formatted; } return array( ''change'' => $change , ''result'' => $result , ''formatted'' => $formatted ); }


La fórmula sería (original - discounted)/original . es decir (365-165) / 365 = 0.5479 ...


Sé que esto es bastante viejo, pero pensé que era tan bueno como cualquiera para poner esto. Encontré una publicación de Yahoo con una buena explicación:

Let''s say you have two numbers, 40 and 30. 30/40*100 = 75. So 30 is 75% of 40. 40/30*100 = 133. So 40 is 133% of 30. The percentage increase from 30 to 40 is: (40-30)/30 * 100 = 33% The percentage decrease from 40 to 30 is: (40-30)/40 * 100 = 25%. These calculations hold true whatever your two numbers.

Publicación original


Veo que esta es una pregunta muy antigua, pero así es como calculo la diferencia porcentual entre 2 números:

(1 - (oldNumber / newNumber)) * 100

Entonces, la diferencia porcentual de 30 a 40 es:

(1 - (30/40)) * 100 = +25% (meaning, increase by 25%)

La diferencia de porcentaje de 40 a 30 es:

(1 - (40/30)) * 100 = -33.33% (meaning, decrease by 33%)

En php, utilizo una función como esta:

function calculatePercentage($oldFigure, $newFigure) { if (($oldFigure != 0) && ($newFigure != 0)) { $percentChange = (1 - $oldFigure / $newFigure) * 100; } else { $percentChange = null; } return $percentChange; }


function calculatePercentage($oldFigure, $newFigure) { $percentChange = (($oldFigure - $newFigure) / $oldFigure) * 100; return round(abs($percentChange)); }


((list price - actual price) / (list price)) * 100%

Por ejemplo:

((25 - 10) / 25) * 100% = 60%