2015-06-05 4 views
7

Я дизайнер, изучающий Swift, и я новичок.Умножение переменных и удвоений в swift

У меня нет никакого опыта.

Я пытаюсь создать калькулятор наконечника, используя базовый код на игровой площадке Xcode.

Вот что у меня есть.

var billBeforeTax = 100 
var taxPercentage = 0.12 
var tax = billBeforeTax * taxPercentage 

Я получаю ошибку:

Binary operator '*' cannot be applied to operands of type 'Int' and 'Double'

Означает ли это, я не могу умножить двойников?

Я пропустил какие-либо основные понятия переменных и удваивает здесь?

+1

На несвязанной ноте - это предпочтительно, где вы можете, вы используете 'let' вместо' var'. – ABakerSmith

+0

Спасибо! Я буду помнить об этом – bmoondesign

+0

Это дубликат ... позвольте мне просто найти, что это дубликат ... – nhgrif

ответ

18

Вы можете использовать только несколько двух одинаковых типов данных.

var billBeforeTax = 100 // Interpreted as an Integer 
var taxPercentage = 0.12 // Interpreted as a Double 
var tax = billBeforeTax * taxPercentage // Integer * Double = error 

Если вы объявляете billBeforeTax как так ..

var billBeforeTax = 100.0 

Это будет интерпретироваться как двойной и умножение будет работать. Или вы также можете сделать следующее.

var billBeforeTax = 100 
var taxPercentage = 0.12 
var tax = Double(billBeforeTax) * taxPercentage // Convert billBeforeTax to a double before multiplying. 
+0

Swift очень чувствителен к типам. В течение большей части времени вы не могли бы работать между двумя переменными разного типа. Хороший ответ. – antonio081014

+0

Спасибо @omoman! Это действительно помогает. – bmoondesign

+0

Отличный ответ @omoman – Trapp

1

Вы просто должны бросить переменную Int удвоится, как показано ниже:

var billBeforeTax = 100 
    var taxPercentage = 0.12 
    var tax = Double(billBeforeTax) * taxPercentage 
+0

Спасибо за ваш ответ :) – bmoondesign

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