日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

decimal类型 go_Go 语言程序设计——字符串类型(2)

發(fā)布時間:2025/3/11 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 decimal类型 go_Go 语言程序设计——字符串类型(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

格式化布爾值

布爾值使用 %t (真值) 格式指令來輸出

例子:

package main

import (

"fmt"

)

func IntForBool (b bool) int {

if b {

return 1

}

return 0

}

func main() {

fmt.Printf("%t %t\n", true, false)

fmt.Printf("%d %d\n", IntForBool(true), IntForBool(false))

}

也可以使用 strconv.ParseBool() 函數(shù)來將字符串轉(zhuǎn)化為布爾值

格式化整數(shù)

例子:

package main

import (

"fmt"

"unicode/utf8"

"strings"

)

func main() {

i := 3931

fmt.Printf("|%b|%9b|%-9b|%09b|% 9b|\n", 37, 37, 37, 37, 37)

fmt.Printf("|%o|%#o|%# 8o|%#+ 8o|%+08o|\n", 41, 41, 41, 41, -41)

fmt.Printf("|%x|%X|%8x|%08x|%#04X|0x%04X|\n", i, i, i, i, i, i)

fmt.Printf("|$%d|$%06d|$%+06d|$%s|\n", i, i, i, Pad(i, 6, '*'))

}

func Pad(number, width int, pad rune) string {

s := fmt.Sprint(number)

gap := width - utf8.RuneCountInString(s)

if gap > 0 {

return strings.Repeat(string(pad), gap) + s

}

return s

}

使用 # 修飾符可以切換格式,從而在輸出時以 0 打頭

+ 修飾符會強制輸出正號,如果沒有該修飾符,正整數(shù)輸出時前面沒有正號

十進制 %d 格式指令,唯一可用于當(dāng)做填充的字符是空格和 0,但也可以使用自定義函數(shù)來填充

utf8.RuneCountInString() 函數(shù)返回給定字符串的字符數(shù),這個數(shù)字永遠小于或等于其字節(jié)數(shù)

strings.Repeat() 函數(shù)接受一個字符串和一個計數(shù),返回一個將該字符串重復(fù)給定次數(shù)后產(chǎn)生的字符串

格式化字符

Go 語言的字符都是 rune(既 int32 值),它可以已數(shù)字或者 Unicode 字符的形式輸出

格式化浮點數(shù)

浮點數(shù)格式可以指定整體長度、小數(shù)位數(shù),以及使用標準計數(shù)法還是科學(xué)計數(shù)法

例子:

package main

import (

"fmt"

"unicode/utf8"

"strings"

"math"

)

func main() {

for _, x := range []float64{-.258, 7194.84, -60897162.0218, 1.500089e-8} {

fmt.Printf("|%20.5e|%20.5f|%s|\n", x, x, Humanize(x, 20, 5, '*', ','))

}

}

func Humanize(amount float64, width, decimals int, pad, separator rune) string {

dollars, cents := math.Modf(amount)

whole := fmt.Sprint("%+.0f", dollars)[1:]

fraction := ""

if decimals > 0 {

fraction = fmt.Sprintf("%+.*f", decimals, cents)[2:]

}

sep := string(separator)

for i := len(whole) - 3; i > 0; i -= 3 {

whole = whole[:i] + sep + whole[i:]

}

if amount < 0.0 {

whole = "-" + whole

}

number := whole + fraction

gap := width - utf8.RuneCountInString(number)

if gap > 0 {

return strings.Repeat(string(pad), gap) + number

}

return number

}

math。Modf() 函數(shù)將一個 float64 類型的整數(shù)部分和小數(shù)部分以 float64 類型的樹的形式返回

%e、%E、%f、%g、%G 格式指令既可以用于復(fù)數(shù),也可以用于浮點數(shù)

%e和%E是科學(xué)計算法格式(指數(shù)的)格式指令

格式化字符串和切片

Go語言默認是居右對齊,我們可以使用-修飾符來將其居左對齊

為調(diào)試格式化

%T(類型)格式指令用于打印一個內(nèi)置的或者自定義值的類型,而 %v 格式指令則用于打印一個內(nèi)置值的值

Go語言中有兩種類型是同義的:uint8 和 byte,int32 和 rune

其他字符處理相關(guān)的包

Go語言處理字符串的強大之處不僅限于對索引和切片的支持,也不限于fmt的格式化功能,strings包提供了非常強大的功能,此外strconv、unicode/utf8、unicode等也提供了大量實用的函數(shù)

總結(jié)

以上是生活随笔為你收集整理的decimal类型 go_Go 语言程序设计——字符串类型(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。