# Golang : Calculate diameter, circumference, area, sphere surface and volume

Tags :

Let's travel back to high school for a while and learn some physics. We will learn how to calculate a circle's area, diameter, circumference, sphere surface and sphere volume the proper way.

I saw many programmers calculate the sphere volume the wrong way in Golang. While the result might appear to be correct mathematically, but wrong. A simple division by float or integer will make a big difference in the sphere volume result.

`4/3` is not the same as `4/3.0`. The code below will demonstrate the differences and as a programmer, it is our job to look out for a simple mistake such as this. You never know in future, some one's life might depend on your code.

Here you go!

`````` package main

import (
"fmt"
"math"
)

var (
radius, diameter, circumference, area, sphereSurface, sphereVolume float64
)

func main() {
fmt.Println("Enter the radius of a circle (in meter): ")

if err != nil {
fmt.Println(err)
}

circumference = 2 * math.Pi * radius
area = math.Pi * math.Pow(radius, 2)
sphereSurface = 4 * math.Pi * math.Pow(radius, 2)

// Go to be careful here, casting float64 over 4/3 is pointless
// because 4/3 is still 1
// The correct way is to do 4.0/3.0
sphereVolume = float64((4.0 / 3.0)) * (math.Pi * math.Pow(radius, 3))

// this will give wrong result

fmt.Println("Diameter (m) : ", diameter)
fmt.Println("Circumference (m): ", circumference)
fmt.Println("Area (m2) : ", area)
fmt.Println("Sphere surface (m2) : ", sphereSurface)
fmt.Println("Sphere volume (m3) [correct way] : ", sphereVolume)
fmt.Println("Sphere volume (m3) [wrong way] : ", sphereVolume)

// compare your calculation result with
// result from http://www.rkm.com.au/CALCULATORS/CALCULATOR-circle-sphere.html
// and http://www.calculatorsoup.com/calculators/geometry-solids/sphere.php

}
``````

Output:

Enter the radius of a circle (in meter):

5

You have entered radius of : 5

Diameter (m) : 10

Circumference (m): 31.41592653589793

Area (m2) : 78.53981633974483

Sphere surface (m2) : 314.1592653589793

Sphere volume (m3) [correct way] : 523.5987755982987

Sphere volume (m3) [wrong way] : 392.69908169872417

References:

http://www.rkm.com.au/CALCULATORS/CALCULATOR-circle-sphere.html

Tags :