読者です 読者をやめる 読者になる 読者になる

リハビリエンジニア

エンジニアリングのリハビリ中

Swift - 文字列の計算式を計算する

Swift

"3+5/2"のような文字列の計算式の答えを求めるには、以下のように書きます。

let expression = NSExpression(format: $計算式文字列$)
let result = expression.expressionValueWithObject(nil, context: nil) as? NSNumber

resultには、正確な計算式であれば答えとなるNSNumberが、計算式でなければnilが返ってきます。
Javascriptのevalのようなものですね。

"5/3"が計算式だとすると数字は全てIntなので、小数点の答えは出ません。
小数点まで求めるのであれば、計算式内の数字を正規表現かなにかで、
”X.0”としてやればDouble型になるので、小数点の答えも出るのではないかと思います。

参考:

spin.atomicobject.com