# Golang : Get digits from integer before and after given position example

This is more like just for fun tutorial, but can useful in a situation such as extracting suffix or prefix parts from phone numbers.

Problem:

You need to extract the last few digits from an integer, perform modulo operation or get first few digits from an integer without converting the integer into slice. How to do that?

Solution:

Use the `modulo` `%` (modulus) operand to get remainder or extract the first few digits by `division` `/`.

Here you go! Happy coding!

`````` package main

import (
"fmt"
)

func main() {
num := 12345

lastThreeDigits := num % 1e3 // use modulo to "count" from back

// length of num is 5
firstTwoDigits := num / 1e3 // cut off after position 3

fmt.Println("Number is : ", num)
fmt.Println("Last 3 digits is : ", lastThreeDigits)
fmt.Println("First 2 digits is : ", firstTwoDigits)

// if num is 1234567
num = 1234567

fmt.Println("Number is : ", num)
firstThreeDigits := num / 1e4 // cut off after position 4
fmt.Println("First 3 digits is : ", firstThreeDigits)

lastFourDigits := num % 1e4
fmt.Println("Last 4 digits is : ", lastFourDigits)

fmt.Println("By the way, 1e3 stands for ", 1e3)
fmt.Println("and 1e4 stands for ", 1e4)
}
``````

Output:

Number is : 12345

Last 3 digits is : 345

First 2 digits is : 12

Number is : 1234567

First 3 digits is : 123

Last 4 digits is : 4567

By the way, 1e3 stands for 1000

and 1e4 stands for 10000

References:

https://blog.golang.org/constants