How to get the Nth digit of a number in Go

1 Answer

0 votes
package main

import (
    "fmt"
	"errors"
	"strconv"
)

/*
GetNthDigitFromLeft returns the N-th digit of a number
counting from the left.
*/
func GetNthDigitFromLeft(inputNumber int64, digitPosition int) (int, error) {
	if inputNumber < 0 {
		inputNumber = -inputNumber
	}

	digitString := strconv.FormatInt(inputNumber, 10)

	if digitPosition < 1 || digitPosition > len(digitString) {
		return 0, errors.New("digit position is out of range")
	}

	digit := int(digitString[digitPosition - 1] - '0')

	return digit, nil
}

func main() {
	inputNumber := int64(82746)

	firstDigit, err := GetNthDigitFromLeft(inputNumber, 1)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	thirdDigit, err := GetNthDigitFromLeft(inputNumber, 3)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fifthDigit, err := GetNthDigitFromLeft(inputNumber, 5)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Printf("Number: %d\n", inputNumber)
	fmt.Printf("1st digit from left: %d\n", firstDigit)
	fmt.Printf("3rd digit from left: %d\n", thirdDigit)
	fmt.Printf("5th digit from left: %d\n", fifthDigit)
}


/*
run:

Number: 82746
1st digit from left: 8
3rd digit from left: 7
5th digit from left: 6

*/

 



answered 20 hours ago by avibootz
...