尝试这个:
number := 111555
fmt.Println(number % 100) // last 2 digits (55)
// first 3 digits (111)
for ; number > 999; number /= 10 {
}
fmt.Println(number) // 111
Run Code Online (Sandbox Code Playgroud)
尝试这个:
number := 111555
slice := strconv.Itoa(number)
fmt.Println(slice[:3]) // first 3 digits (111)
fmt.Println(slice[len(slice)-2:]) // and the last 2 digits (55)
Run Code Online (Sandbox Code Playgroud)
前 3 位数字 (111):
strconv.Itoa(number)[:3]
Run Code Online (Sandbox Code Playgroud)
最后 2 位数字 (55):
number % 100
Run Code Online (Sandbox Code Playgroud)
或者:
slice := strconv.Itoa(number)
slice[len(slice)-2:]
Run Code Online (Sandbox Code Playgroud)
尝试这个:
number := 111555
// and the last 2 digits (55)
l2d := number % 100
fmt.Println(l2d)
// first 3 digits (111)
f3d := strconv.Itoa(number)[:3]
// i, e := strconv.Atoi(f3d)
fmt.Println(f3d)
Run Code Online (Sandbox Code Playgroud)
另一种方法,试试这个:
package main
import (
"fmt"
"math"
)
func main() {
number := 111555
// last 2 digits (55)
l2d := number % 100
fmt.Println(l2d)
// first 3 digits (111)
remainingDigits := numberOfDigits(number) - 3
f3d := number / int(math.Pow10(remainingDigits))
fmt.Println(f3d)
}
func numberOfDigits(n int) (digits int) {
for ; n != 0; n /= 10 {
digits++
}
return
}
Run Code Online (Sandbox Code Playgroud)
其他方式:
package main
import (
"fmt"
)
func main() {
number := 111555
// and the last 2 digits (55)
l2d := number % 100
fmt.Println(l2d)
// first 3 digits (111)
fmt.Println(leftDigits(number, 3))
}
func leftDigits(number, n int) int {
digits := make([]byte, 20)
i := -1
for number != 0 {
i++
digits[i] = byte(number % 10)
number /= 10
}
r := 0
for ; n != 0; n-- {
r = r * 10
r += int(digits[i])
i--
}
return r
}
Run Code Online (Sandbox Code Playgroud)
输出:
55
111
Run Code Online (Sandbox Code Playgroud)
此函数给出特定位置的数字:
func digit(num, place int) int {
r := num % int(math.Pow(10, float64(place)))
return r / int(math.Pow(10, float64(place-1)))
}
Run Code Online (Sandbox Code Playgroud)
例如digit(1234567890, 2)(从右边数第二个数)给出9并digit(1234567890, 6)给出5(从右边数第六个数)。
通过使用简单的算法:
func d(num int) (firstThree int, lastTwo int) {
firstThree = num / 1000
lastTwo = num % 100
return
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |