2015-01-06 2 views
3

В настоящее время math.Pow() и math.sqrt принимают float64 аргументы типа.Целочисленные функции квадратного и квадратного корня

Есть ли у нас эквивалентные функции, которые принимают аргументы типа int?

+0

Вы можете проверить здесь http://golang.org/pkg/math/, они не предоставляются. – Akavall

ответ

0

Что вы можете сделать, это лить под давлением поплавок на ваше значение.

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

'float' удален – user2418306

1

Просто создайте объект float64, используя значение int. Пример, если INT = 10.

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

Есть быстрые приближенные алгоритмы, описанные в другом месте на SO, такие как this one. Если производительность важна, перенос одного из алгоритмов C на Go может стоить усилий.

2

Если ваше возвращаемое значение является поплавком, вы можете использовать Ceil или Floor из математического пакета, а затем преобразовать его в 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 

Имейте в виду, что покрытие по-прежнему возвращает float64, так что вы все еще хотите, чтобы обернуть его в междунар()

Смежные вопросы