decimal类型 go_Go 语言程序设计——字符串类型(2)
格式化布爾值
布爾值使用 %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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32c语言写数码管定时器,使用TI
- 下一篇: echarts里面的参数解释_Echar