golang: Why do I get +Inf instead of an integer or a float?
go
Solution
To expand on Diego's answer, you have the line
var ratex float64 = 1 + interest
before interest is defined, so it is 0 and ratex becomes 1. Then you have the line
var logi float64 = math.Log(ratex)
and since ratex is 1, and the log of 1 is 0, logi becomes 0. You then define the period by dividing by logi, which is 0, so you will get +inf.
What you should do is assign the value to ratex after you have gotten the input for what the interest is.
Problem
I am learning golang, working on time value of money computations I am trying to compute for number of period to say, double your money. The formula that I am using is period = log(fv/pv) / log(1 + i). What I have so far is... ``` package main import ( "fmt" "math" ) var ( interest, futureValue, period, presentValue float64 ) var rate float64 = interest / 100 //converts interest into decimal... interest / 100 var ratex float64 = 1 + interest //used for (1 + i) func main() { numPeriod() } func numPeriod() { fmt.Println("Enter interest amount: ") fmt.Scanf("%g", &interest) fmt.Println("Enter present value: ") fmt.Scanf("%g", &presentValue) fmt.Println("Enter future value: ") fmt.Scanf("%g", &futureValue) var logfvpvFactor float64 = futureValue / presentValue var logi float64 = math.Log(ratex) var logfvpv float64 = math.Log(logfvpvFactor) period = logfvpv / logi fmt.Printf("Number of period/s is = %g\n", period) } ``` Running this, I get... ``` Number of period/s is = +Inf ``` ...the answer I was looking for is either an integer or a float. How do I get that? Thanks for your help!