从 到浮点数到整数

如果您首先想将金额解析为浮点数,那么在下一步中不要转换,而是使用 四舍五入

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, &cents); 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