Golang : Calculate percentage change of two values
Here is a simple example on how to calculate the percentage change from two numbers. If the result is positive number, then it is percentage increase, if negative then it is percentage decrease.
Very useful in displaying data to illustrate a mathematical point of view, such as a decrease in population or increase in the number of certain species.
Here you go!
package main
import (
"fmt"
)
func PercentageChange(old, new int) (delta float64) {
diff := float64(new - old)
delta = (diff / float64(old)) * 100
return
}
func main() {
fmt.Printf("Old : 500, New : 500 Change : %0.2f %% \n", PercentageChange(500, 500))
// anything divided by 0 will become infinity
fmt.Printf("Old : 0, New : 50 Change : %0.2f %% \n", PercentageChange(0, 50))
fmt.Printf("Old : 100, New : 30 Change : %0.2f %% \n", PercentageChange(100, 30))
fmt.Printf("Old : 1000, New : 830 Change : %0.2f %% \n", PercentageChange(1000, 830))
fmt.Printf("Old : 5, New : 3 Change : %0.2f %% \n", PercentageChange(5, 3))
fmt.Printf("Old : -15, New : 3 Change : %0.2f %% \n", PercentageChange(-15, 3))
fmt.Printf("Old : 100, New : 130 Change : %0.2f %% \n", PercentageChange(100, 130))
}
Output:
Old : 500, New : 500 Change : 0.00 %
Old : 0, New : 50 Change : +Inf %
Old : 100, New : 30 Change : -70.00 %
Old : 1000, New : 830 Change : -17.00 %
Old : 5, New : 3 Change : -40.00 %
Old : -15, New : 3 Change : -120.00 %
Old : 100, New : 130 Change : 30.00 %
Reference:
See also : Golang : Create and shuffle deck of cards example
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+4.7k JQuery : Calling a function inside Jquery(document) block
+5.4k Unix/Linux : How to find out the hard disk size?
+11.1k Use systeminfo to find out installed Windows Hotfix(s) or updates
+13.1k Golang : Verify token from Google Authenticator App
+22.7k Golang : Gorilla mux routing example
+9.2k Mac OSX : Get a process/daemon status information
+5.1k Unix/Linux : How to archive and compress entire directory ?
+6k PHP : How to handle URI or URL with non-ASCII characters such as Chinese/Japanese/Korean(CJK) ?
+14.1k Golang : Recombine chunked files example
+12.1k Golang : Display list of countries and ISO codes
+22.7k Golang : Test file read write permission example
+9.3k Golang : Changing a RGBA image number of channels with OpenCV