gpt4 book ai didi

戈朗 : Why do I get +Inf instead of an integer or a float?

转载 作者:IT王子 更新时间:2023-10-29 00:39:53 25 4
gpt4 key购买 nike

我正在学习 golang,从事货币时间值(value)计算

我正在尝试计算周期数,也就是说,将您的钱加倍。我使用的公式是 period = log(fv/pv) / log(1 + i) .到目前为止我所拥有的是...

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)
}

运行这个,我得到...

Number of period/s is = +Inf

...我正在寻找的答案是整数或 float 。我如何获得它?

感谢您的帮助!

最佳答案

要扩展 Diego 的答案,您有这条线

var ratex float64 = 1 + interest

在 interest 被定义之前,所以它是 0 而 ratex 变成 1。然后你有这条线

var logi float64 = math.Log(ratex)

并且由于 ratex 为 1,并且 1 的对数为 0,因此 logi 变为 0。然后您通过除以 logi 来定义周期,logi 为 0,因此您将得到 +inf。

您应该做的是在获得有关兴趣的输入后将值分配给 ratex。

关于戈朗 : Why do I get +Inf instead of an integer or a float?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13739751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com