亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 中 Big Ints 前導零填充的 Format 方法的使用示例

Golang 中 Big Ints 前導零填充的 Format 方法的使用示例

Go
一只萌萌小番薯 2023-04-17 15:08:31
我想將一個大整數格式化為帶有前導零的字符串。我正在尋找一個與此類似的示例,但具有 Big:我在這里查看源代碼。但是當我打電話時:m := big.NewInt(99999999999999)fmt.Println(m.Format("%010000000000000000000","d"))我懂了:prog.go:10:22: m.Format("%010000000000000000000", "d") used as valueprog.go:10:23: cannot use "%010000000000000000000" (type string) as type fmt.State in argument to m.Format:    string does not implement fmt.State (missing Flag method)prog.go:10:48: cannot use "d" (type string) as type rune in argument to m.Format(我知道通常我可以使用 m.String(),但零填充似乎使這個復雜化,所以我專門尋找有關 Format 方法的幫助。)這是我的游樂場鏈接。
查看完整描述

2 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

您可以簡單地使用fmt.Sprintf(...)指令"%020s"(其中 20 是您想要的任何總長度)。動詞s將使用 big int 的自然字符串格式,020修飾符將創建一個總長度(至少)為 20 且零填充(而不是空格)的字符串。

例如(去游樂場):

m := big.NewInt(99999999999999)

s := fmt.Sprintf("%020s", m)

fmt.Println(s)

// 00000099999999999999


查看完整回答
反對 回復 2023-04-17
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

Int.Format()不是供您手動調用的(盡管您可以),但它是為了實現fmt.Formatter,因此fmt包將支持big.Int開箱即用的格式化值。

看這個例子:

m := big.NewInt(99)

fmt.Printf("%06d\n", m)


if _, ok := m.SetString("1234567890123456789012345678901234567890", 10); !ok {

? ? panic("big")

}

fmt.Printf("%060d\n", m)

000099
000000000000000000001234567890123456789012345678901234567890

這是最簡單的,所以使用它。手動創建一個fmt.Formatter給你更多的控制權,但也更難做到。除非這是您應用程序的性能關鍵部分,否則只需使用上述解決方案。


查看完整回答
反對 回復 2023-04-17
  • 2 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號