Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,563 questions

56,781 answers

573 users

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 2 days ago by avibootz
...