Este dilema se puede abordar de diversas formas, pero te enseñamos la que para nosotros es la respuesta más completa.
Solución:
Este es la mayoría definitivamente un programación problema. El problema es que no se puede programar per se. Cuando P es realmente cero, el concepto de cambio porcentual no tiene sentido. Cero a cualquier cosa no se puede expresar como una tasa, ya que está fuera del límite de definición de la tasa. Pasar de ‘no ser’ a ‘ser’ no es un cambio de ser, es en cambio creación de ser.
Si está obligado a mostrar el crecimiento como un porcentaje, es costumbre mostrar [NaN]
o algo similar en estos casos. Una tasa de crecimiento, por otro lado, se reportaría en este caso como $/mes. Así que en tu ejemplo para April
la tasa de crecimiento se calcularía como ((20-0)/1
.
En cualquier caso, determinar el método correcto para informar este caso especial es una decisión del usuario. ¿Está cubierto en sus requisitos de usuario?
No hay tasa de crecimiento de 0 a cualquier otro número. Es decir, no hay porcentaje de aumento de cero a mayor que cero y no hay porcentaje de disminución de cero a menor que cero (un número negativo). Lo que tienes que decidir es qué poner como salida cuando ocurra esta situación. Aquí hay dos posibilidades con las que me siento cómodo:
- Cada vez que tenga que mostrar una tasa de aumento desde cero, emita el símbolo de infinito (∞). Eso es Alt + 236 en tu teclado numérico, en caso de que te lo estés preguntando. También podría usar infinito negativo (-∞) para una tasa de crecimiento negativa desde cero.
- Salida de una declaración como “[Increase/Decrease] From Zero” o algo por el estilo.
Desafortunadamente, si necesita la tasa de crecimiento para más cálculos, las opciones anteriores no funcionarán, pero, por otro lado, cualquier número le daría a sus siguientes cálculos datos incorrectos de cualquier manera, por lo que el punto es discutible. Deberá actualizar los siguientes cálculos para tener en cuenta esta eventualidad.
Aparte, la función ((New-Old)/Old) no funcionará cuando los valores nuevos y antiguos sean cero. Debe crear una verificación inicial para ver si ambos valores son cero y, si lo son, generar cero por ciento como tasa de crecimiento.