Go Basics

Go Operators and Arithmetic

Why is 17 / 5 equal to 3 in Go? Learn arithmetic, comparison and logical operators.

  • Beginner
  • 3 min read
  • 1 runnable example
What you'll learn
  • + - * / and %
  • Integer division
  • &&, || and ++
Expression → result
17 / 53
17 % 52
float64(17) / float64(5)3.4
math.Pow(2, 10)1024

How Go evaluates an expression

Operators combine values into expressions. Go follows the usual math rules, with one thing to remember: dividing two integers drops the fraction.

17 / 5 is 3 because both numbers are integers, and 17 % 5 is the remainder 2. Converting both sides to float64 keeps the fraction. && is true only when both comparisons are true. count++ adds one and is a statement, not an expression.

Key points

  1. int / int drops the fraction: 17 / 5 is 3.
  2. % gives the remainder: 17 % 5 is 2.
  3. Convert to float64 to keep the fraction.

Runnable Go example

Go
Run code →
main.go
package main

import (
	"fmt"
	"math"
)

func main() {
	a, b := 17, 5
	fmt.Println(a+b, a-b, a*b)
	fmt.Println(a/b, a%b)
	fmt.Println(float64(a) / float64(b))
	fmt.Println(a > b && b != 0)
	fmt.Println(math.Pow(2, 10), math.Sqrt(144))

	count := 0
	count++
	count += 10
	fmt.Println(count)
}
Get a Run button for this example Result of running the code
22 12 85
3 2
3.4
true
1024 12
11

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges