我有以下代碼片段:package mainimport("fmt";"flag")func main() { var a = flag.Int("a",0,"divident") var b = flag.Int("b",1,"divisor") flag.Parse() fmt.Printf("%f",*a / *b )}對于 -a 3 和 -b 2 命令行參數(shù),輸出為: %!f(int=1)強制此除法為浮點的最佳/最優(yōu)雅的方法是什么?
2 回答

HUX布斯
TA貢獻1876條經(jīng)驗 獲得超6個贊
有沒有隱式類型轉(zhuǎn)換為圍棋的變量,所以你必須轉(zhuǎn)換為浮動:
fmt.Printf("%f", float32(a)/float32(b))
或者
fmt.Printf("%f", float32(a/b))
取決于你想要什么。還要檢查一下float64
——如果這能讓你的船漂浮。

肥皂起泡泡
TA貢獻1829條經(jīng)驗 獲得超6個贊
您必須先將類型轉(zhuǎn)換為浮點數(shù)。
通常,如果您有一些非浮點數(shù)字類型(例如int
s)a
和b
,為了獲得您使用的浮點除法float32(a)/ float32(b)
(或float64
視情況而定)。這也適用于任何其他數(shù)字類型,如果您想將浮點數(shù)視為整數(shù)或?qū)⒄麛?shù)視為復(fù)數(shù)轉(zhuǎn)換操作數(shù)。在這種情況下,如果 a 為 3,b 為 2,則為float32(a)/float32(b)
1.5。
如果您希望完成整數(shù)除法,但結(jié)果是浮點數(shù),則將結(jié)果轉(zhuǎn)換為float32(a/b)
. 在這種情況下,如果 a 是 3,b 是 2,那么float32(a/b)
你會得到 1.0。
- 2 回答
- 0 關(guān)注
- 554 瀏覽
添加回答
舉報
0/150
提交
取消