将两个值相除会得出0

时间:2019-06-15 14:51:34

标签: go floating-point int division

我试图对两个变量进行除法,但是当我想打印结果时,程序将打印出0

teTime已正确打印了LeadTime和endAmount,但是将monthAmount打印为0。同样,如果我删除了endAmount和leadTime周围的float64(),则将其打印为0

var leadTime int
if currentAge < 45 {
    leadTime  = 120
} else if currentAge > 45 && currentAge < 55 {
    leadTime = 90
} else if currentAge > 55 {
    leadTime = 60
}
endAmount, _ := strconv.Atoi(amountAsString)

monthlyAmount:= (float64(endAmount) / float64(leadTime)
fmt.Println("leadTime :", leadTime )
fmt.Println("Total amount:", endAmount)
fmt.Println("monthlyAmount:", monthlyAmount)

使用我正在测试的标准输入,leadTime = 120,endAmount = 93735.00,因此每月金额应为:781.13

1 个答案:

答案 0 :(得分:0)

问题是您尝试将浮点字符串转换为

中的int
endAmount, _ := strconv.Atoi(amountAsString)

这将给出一个错误,但是您只是忽略了它。使用strconv.ParseFloat(amountAsString, 64)解决您的问题。

检查游乐场example来查看错误和工作代码