Swift ^ Операция на двойном - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь решить проблему, но код не работает. Мне нужно выполнить ^ операцию на двойниках. Проблема заключалась в том, что если я вызову функцию Calculate (3,2, ^), я должен получить результат 9.

Я попробовал приведенный ниже код, но не смог с этой ошибкой:

error : двоичный оператор '^' нельзя применить к двум 'двойным' операндам

Ниже мой код:

func calc(a: Double, b: Double, op: Character) -> Double {
var c:Double
c = 0
if op == "+"
{
    c =  a + b
}
else if op == "-"
{
    c =  a - b
}
else if op == "*"
{
    c =  a * b
}
else if op == "/"
{
    c =  a / b
}
else if op == "%"
{
    let rem = a.truncatingRemainder(dividingBy: b)
    c = rem
}

else if op == "^"
{
    let z = a ^ b
     c = z
}
return c
}

Ответы [ 3 ]

6 голосов
/ 27 января 2020

^ - это битовый оператор XOR , не возведенный в степень.

Вместо этого используйте метод pow(_:_:):

else if op == "^"
{
    c = pow(a, b)
}
0 голосов
/ 27 января 2020

Я предполагаю, что вы думаете, что «^» означает «к силе», поэтому в вашем примере вы пытаетесь получить 3 «к силе» 2, что дает вам 9.

В кодировании «^» используется для побитовой операции XOR, вы не можете XOR 2 удваивать вместе!

0 голосов
/ 27 января 2020

попробуйте использовать букле для

  for (let index = 0; index < b; index++) {
    c= a*index;

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...