从 到浮点数到整数
如果您首先想将金额解析为浮点数,那么在下一步中不要转换,而是使用 四舍五入。
0.50.50.5
在您的情况下,乘以 100 后,在进行转换之前添加 0.5 :
f := 655.17
i := int(f*100 + 0.5)
fmt.Println(i)
输出(在Go Playground 上试试):
65517
阅读涵盖此内容及更多内容的相关问题:Golang Round to Nearest 0.05
将整数和小数部分分别解析为 2 个整数
string."dollars.cents"dollarscents
s := "655.17"
var dollars int64
var cents uint64
if _, err := fmt.Sscanf(s, "%d.%d", &dollars, ¢s); err != nil {
panic(err)
}
if cents > 99 {
panic("cents cannot be greater than 99")
}
var total int64
if dollars >= 0 {
total = dollars*100 + int64(cents)
} else {
total = dollars*100 - int64(cents)
}
fmt.Println(total)
再次输出(在Go Playground上试试):
65517
655.70655.7