第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用小數(shù)位的整數(shù)條件格式

使用小數(shù)位的整數(shù)條件格式

Go
慕村225694 2022-11-23 14:22:31
我有以下情況:我將收到整數(shù)并且必須根據(jù)以下規(guī)則格式化它們:10000 -> 100 // removing the last "00"10010 -> 100.1 // removing the last "0", and adding a decimal place10011 -> 100.11 // adding two decimal places 如何做到這一點?非常感謝。
查看完整描述

1 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊

使用浮點數(shù)

將整數(shù)轉(zhuǎn)換為float64,除以100并使用包的%g動詞fmt,它刪除尾隨零:


對于浮點值,寬度設(shè)置字段的最小寬度,精度設(shè)置小數(shù)點后的位數(shù)(如果適用),除了 %g/%G 精度設(shè)置最大有效數(shù)字位數(shù)(尾隨零被刪除) .


為避免“大”數(shù)字恢復(fù)為%e科學(xué)記數(shù)法(大于默認(rèn)精度的數(shù)字,即 6 %g),明確指定寬度,如下所示:


fmt.Printf("%.12g\n", float64(v)/100)

測試它:


for _, v := range []int{

    10000, 10010, 10011,

    10000000, 10000010, 10000011,

    10000000000, 10000000010, 10000000011,

} {

    fmt.Printf("%.12g\n", float64(v)/100)

}

這將輸出(在Go Playground上嘗試):


100

100.1

100.11

100000

100000.1

100000.11

100000000

100000000.1

100000000.11

使用整數(shù)

在不轉(zhuǎn)換為浮點數(shù)的情況下(并依賴于 的尾隨零刪除%g),這就是使用整數(shù)運算的方法:


最后 2 位是除以 100 的余數(shù),其余是整數(shù)除以 100 的結(jié)果。您可以根據(jù)余數(shù)格式化這 2 個數(shù)字,如下所示:


switch q, r := v/100, v%100; {

case r == 0:

    fmt.Println(q)

case r%10 == 0:

    fmt.Printf("%d.%d\n", q, r/10)

default:

    fmt.Printf("%d.%02d\n", q, r)

}

在Go Playground試試這個。


查看完整回答
反對 回復(fù) 2022-11-23
  • 1 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號