首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Swift语言中获得一些整数的幂?

如何在Swift语言中获得一些整数的幂?
EN

Stack Overflow用户
提问于 2014-06-13 10:13:14
回答 15查看 131.7K关注 0票数 120

我最近在学习swift,但我有一个基本的问题找不到答案

我想要像这样的东西

代码语言:javascript
复制
var a:Int = 3
var b:Int = 3 
println( pow(a,b) ) // 27

但是pow函数只能处理双精度数,它不能处理整数,我甚至不能通过Double(a)或a.double()将整型转换为双精度。

为什么它不提供整数的幂呢?它肯定会返回一个没有歧义的整数!为什么我不能将一个整数转换为双精度?它只是将3更改为3.0 (或3.00000...管它呢)

如果我得到了两个整数,并且我想做幂运算,我怎么才能顺利地做呢?

谢谢!

EN

回答 15

Stack Overflow用户

发布于 2014-06-13 10:19:23

除了您的变量声明有语法错误之外,它完全按照您预期的方式工作。您所要做的就是将ab转换为Double并将值传递给pow。然后,如果您正在处理2个Int,并且希望在操作的另一边返回Int,则只需将其强制转换为Int即可。

代码语言:javascript
复制
import Darwin 

let a: Int = 3
let b: Int = 3

let x: Int = Int(pow(Double(a),Double(b)))
票数 71
EN

Stack Overflow用户

发布于 2015-07-09 04:53:42

如果您不倾向于操作符重载(尽管阅读您的代码的人可能对^^解决方案很清楚),您可以快速实现:

代码语言:javascript
复制
let pwrInt:(Int,Int)->Int = { a,b in return Int(pow(Double(a),Double(b))) }
pwrInt(3,4) // 81
票数 5
EN

Stack Overflow用户

发布于 2015-04-19 06:36:30

更多细节

代码语言:javascript
复制
   infix operator ^^ { associativity left precedence 160 }
   func ^^ (radix: Int, power: Int) -> Int {
       return Int(pow(CGFloat(radix), CGFloat(power)))
   }

swift - Binary Expressions

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24196689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档