两个值的除法结果为 0
Division of two values results in 0
我试图对两个变量进行除法,但是当我想打印结果时,程序打印出 0
te 程序正确打印了 leadTime 和 endAmount,但是 monthlyAmount 被打印为 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 所以 monthlyAmount 应该是:781.13
问题是您试图将
中的浮动字符串转换为 int
endAmount, _ := strconv.Atoi(amountAsString)
这会报错,但你只是忽略了它。使用 strconv.ParseFloat(amountAsString, 64)
来解决您的问题。
检查 playground example 以查看错误和工作代码
我试图对两个变量进行除法,但是当我想打印结果时,程序打印出 0
te 程序正确打印了 leadTime 和 endAmount,但是 monthlyAmount 被打印为 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 所以 monthlyAmount 应该是:781.13
问题是您试图将
中的浮动字符串转换为 intendAmount, _ := strconv.Atoi(amountAsString)
这会报错,但你只是忽略了它。使用 strconv.ParseFloat(amountAsString, 64)
来解决您的问题。
检查 playground example 以查看错误和工作代码