Nandakumar Edamana
Share on:

# Simple Interest Calculator in Go

Go is a relatively new programming language that is adored for its simplicity, compilation speed, and ease of network and concurrent programming. If you've successfully written and run your Hello World program in Go, here is the next step. It's a simple interest calculator that shows how basic I/O, variable declaration and calculations work in Go.

```package main

import "fmt"

func main() {
var p, r, n float64

fmt.Printf("Enter the principal amount (P): ")
fmt.Scanf("%f", &p)

fmt.Printf("Enter the rate of interest (R%%): ")
fmt.Scanf("%f", &r)

fmt.Printf("Enter the no. of years (N): ")
fmt.Scanf("%f", &n)

intrst := p * r/100 * n

fmt.Printf("The total interest amount is %.2f\n", intrst)
}
```

You can save the above code using any basic text editor. I hope you've installed Go. Assuming you chose the name `main.go`, you can run this program using the command `go run main.go`. Of course I'm not getting into the details of building a Go package. That's not the point of this article.

Let's see what's in the code. The logic is pretty straightforward. You read some basic parameters for calculating simple interest and run a basic formula. But what are some interesting facts related to this code, especially if you are new to Go?

• Semicolons for statement termination are optional.
• `float64` is 64-bit floating point data type, usually similar to C's `double`.
• The variable `intrst` is declared and initialized using the `:=` operator, which helps avoid manually specifying the data type because it uses Go's type inference capability.
• Unlike in C, `Printf` and `Scanf` start with uppercase letter, because they are public functions from the package `fmt`. Public members of containers like packages and structs start with uppercase letters in Go.
• In case you are not familiar with C, `%%` in `Printf` prints a literal % and `%.2f` prints a floating point number upto two decimal points. `\n` prints a newline, or in other words, ends the current line.
• Again, if you are not familiar with C, `&` is used before the variables in `Scanf` because you are passing the address of the variable to `Scanf` so that it can fill the variable.