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

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

將浮點數格式化為 n 個小數位且沒有尾隨零

將浮點數格式化為 n 個小數位且沒有尾隨零

Go
喵喔喔 2021-10-18 17:17:17
我想顯示一個帶有整個整數部分和小數部分最多兩位小數的浮點數,沒有尾隨零。http://play.golang.org/p/mAdQl6erWX:// Desired output: // "1.9"// "10.9"// "100.9"fmt.Println("2g:")fmt.Println(fmt.Sprintf("%.2g", 1.900)) // outputs "1.9"fmt.Println(fmt.Sprintf("%.2g", 10.900)) // outputs "11"fmt.Println(fmt.Sprintf("%.2g", 100.900)) // outputs "1e+02"fmt.Println("\n2f:")fmt.Println(fmt.Sprintf("%.2f", 1.900)) // outputs "1.90"fmt.Println(fmt.Sprintf("%.2f", 10.900)) // outputs "10.90"fmt.Println(fmt.Sprintf("%.2f", 100.900)) // outputs "100.90"格式化2g有一個問題,當整數增加數量級時它開始四舍五入。此外,它有時會顯示帶有e.格式化2f有一個問題,它會顯示尾隨零。我可以編寫一個刪除尾隨零的后處理函數,但我寧愿使用Sprintf.這可以使用通用方式完成Sprintf嗎?如果沒有,有什么好的方法可以做到這一點?
查看完整描述

3 回答

?
米脂

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

不確定Sprintf但要讓它起作用。修剪正確,0然后.。


fmt.Println(strings.TrimRight(strings.TrimRight(fmt.Sprintf("%.2f", 100.900), "0"), ".")) // 100.9

fmt.Println(strings.TrimRight(strings.TrimRight(fmt.Sprintf("%.2f", 100.0), "0"), ".")) // 100



查看完整回答
反對 回復 2021-10-18
?
泛舟湖上清波郎朗

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

我使用以下功能來實現相同的目的:


//return 45.00 with "45" or 45.50 with "45.5"

func betterFormat(num float32) string {

    s := fmt.Sprintf("%.4f", num)

    return strings.TrimRight(strings.TrimRight(s, "0"), ".")

}


查看完整回答
反對 回復 2021-10-18
  • 3 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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