平方和平方根的整数函数

huangapple go评论87阅读模式
英文:

Integer functions of square and square root

问题

目前,math.Pow()math.sqrt 函数接受 float64 类型的参数。

我们是否有相应的函数可以接受 int 类型的参数?

英文:

Currently, math.Pow() and math.sqrt take float64 type arguments.

Do we have equivalent functions that take int type arguments?

答案1

得分: 5

如果你的返回值是一个浮点数,你可以使用math包中的Ceil或Floor函数,然后将其转换为整数。

n := 5.5
o := math.Floor(n)
p := int(math.Pow(o, 2))

fmt.Println("浮点数:", n)
fmt.Println("向下取整:", o)
fmt.Println("平方:", p)

输出结果为:
浮点数: 5.5
向下取整: 5
平方: 25

请记住,Floor函数仍然返回一个float64类型的值,所以你仍然需要将其包装在int()函数中。

英文:

If your return value is a float, you can use Ceil or Floor from the math package and then convert it to an int.

n := 5.5
o := math.Floor(n)
p := int(math.Pow(o, 2))

fmt.Println("Float:", n)
fmt.Println("Floor:", o)
fmt.Println("Square:", p)

5.5
5
25

Keep in mind that Floor still returns a float64, so you will still want to wrap it in int()

答案2

得分: 3

只需使用整数值创建一个 float64 对象。例如,如果整数为 10。

var x float64 = 10
var b = math.Pow(2, x)
英文:

just create a float64 object using the int value. Example if int = 10.

var x float64 = 10
var b = math.Pow(2, x) 

答案3

得分: 0

在 Stack Overflow 的其他地方有描述快速近似算法的方法,比如这个。如果性能很重要,将其中一个 C 算法移植到 Go 语言可能是值得努力的。

英文:

There are fast approximate algorithms described elsewhere on SO, such as this one. If performance is important, porting one of the C algorithms to Go might be worth the effort.

答案4

得分: -3

你可以将一个float类型转换为你的值。

int a=10,b=2;
math.Pow(float(a),float(b));
英文:

What you can do is type-cast a float to your value.

int a=10,b=2;
math.Pow(float(a),float(b));

huangapple
  • 本文由 发表于 2015年1月7日 01:26:20
  • 转载请务必保留本文链接:https://go.coder-hub.com/27803914.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定