我的问题看起来很简单,但我还没有解决它..
用户输入一个字符串表示的金额 xx.xx。然后,我将该字符串转换为浮点值(一些美元,一些美分),例如,让它成为 655.18(float64)
然后,我需要将此金额转换为美分 - 655.18*100,结果是 65517.9999999,所以当我将此值转换为 int 时,我得到 65517,因此丢失了 1 美分。
如何避免这种行为?
代码:
代码:
package main
import (
"fmt"
"strconv"
)
func CheckParamsPur(sa string) (amount float64) {
amount, _ = strconv.ParseFloat(sa, 64)
return amount
}
func main() {
fmt.Print("Enter a number: ")
var input string
fmt.Scanf("%s", &input)
amount := int(CheckParamsPur(input) * (100))
fmt.Println(amount)
}