2015-06-05 30 views
7

Jestem projektantem, który chce nauczyć się Swift i jestem początkującym.Pomnożenie zmiennych i dubletów w szybkim tempie

Nie mam żadnego doświadczenia.

Próbuję utworzyć kalkulator napiwków za pomocą podstawowego kodu na placu zabaw Xcode.

Oto, co mam do tej pory.

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

pojawia się błąd:

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

Czy to znaczy, że nie może się rozmnażać podwaja?

Czy brakuje mi tutaj podstawowych pojęć zmiennych i dubletów?

+1

Na niepowiązanych uwaga - to korzystne jest, gdzie to tylko możliwe, należy użyć 'let' zamiast' var'. – ABakerSmith

+0

Dzięki! Będę o tym pamiętać – bmoondesign

+0

To jest duplikat ... pozwól mi po prostu znaleźć to, co jest duplikatem ... – nhgrif

Odpowiedz

18

Można tylko wiele różnych typów tego samego typu.

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

Jeśli zadeklarujesz billBeforeTax jak tak ..

var billBeforeTax = 100.0 

Będzie ona być interpretowana jako podwójny i mnożenie zadziała. Lub możesz również wykonać następujące czynności.

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

Swift jest bardzo wrażliwy na typy. Przez większość czasu nie można było wykonywać operacji między dwiema zmiennymi innego typu. Dobra odpowiedź. – antonio081014

+0

Dziękujemy @omoman! To naprawdę pomaga. – bmoondesign

+0

Świetna odpowiedź @omoman – Trapp

1

Po prostu trzeba oddać int zmienna podwoić jak poniżej:

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

Dziękuję za odpowiedź :) – bmoondesign