Forums

iOS Hoe gebruik je sin, cos en tan?

m

MrPenguin9

Originele affiche
1 aug. 2008
  • 13 mei 2009
Hoe gebruik je sin, cos en tan in de iPhone SDK? En ook hoe gebruik je het omgekeerde ervan?

Bedankt

Stille Panda

emeritus moderator
8 okt 2002
Het Bamboebos


  • 13 mei 2009
Ik gok dat je gewoon de C-versies van cos, sin en tan zou gebruiken. m

MrPenguin9

Originele affiche
1 aug. 2008
  • 13 mei 2009
Mag ik daar een voorbeeld van alstublieft.

Bedankt

PhoneyOntwikkelaar

2 sep. 2008
  • 13 mei 2009
Code: |_+_|
Is er nog iets?

Typ dit eens in de terminal of google het

man zonde m

MrPenguin9

Originele affiche
1 aug. 2008
  • 13 mei 2009
Maar als ik 'tan(1)' in xcode doe, krijg ik 1556013989 terug!?!? Maar de kleur van 1 is 0,017455... Wat doe ik verkeerd?

Bedankt R

Ron C

18 juli 2008
Chicago-gebied
  • 13 mei 2009
Ruikt naar een typeprobleem

MrPenguin9 zei: Maar als ik 'tan(1)' in xcode doe, krijg ik 1556013989 terug!?!? Maar de kleur van 1 is 0,017455... Wat doe ik verkeerd?

Bedankt

1556013989? Het kan gewoon een waarde met drijvende komma als een geheel getal afdrukken zonder de typeconversie?

Waar haal je deze tan() functie vandaan? wiskunde.h? Welk type retourneert tan(), bijvoorbeeld? Kost het radialen of graden? In welk type slaat u de retourwaarde op?

Ik controleerde de man-pagina voor tan() en er staat:
Code: |_+_| Dus... de enige functie die overeenkomt met die handtekening neemt een double (automatische conversie) en retourneert een double (ook automatische conversie) en neemt radialen.

Hoe kijk je naar de waarde? Hoe ziet je code eruit?

EDIT: ik heb zojuist de waarde van tan (1 radiaal) in Calculator.app gecontroleerd - er staat: 1.557408. Dus... waarom denk je dat het 0,017455 zou moeten zijn? Dat is de waarde van tan (1 GRADEN) m

MrPenguin9

Originele affiche
1 aug. 2008
  • 13 mei 2009
Hier mijn code van MainView.m Code: |_+_| (Oh, en ik wist niet dat tan(x) in radialen was.) Bedankt jongens voor het helpen! G

Guiyon

19 april 2008
Cambridge, Massachusetts
  • 13 mei 2009
MrPenguin9 zei: -(void)wakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

Daar is je probleem, tan retourneert een dubbele, maar de %d formaat string verwacht een geheel getal. Het veranderen van '%d' in '%lf' zou dat moeten oplossen. Als u 'man 3 printf' typt op de terminal, krijgt u veel meer informatie over de tekenreeksen in printf-stijl die Apple (en veel andere bibliotheken) gebruiken; zoek naar het gedeelte dat begint met 'De opmaakreeks bestaat uit nul of meer richtlijnen' R

Ron C

18 juli 2008
Chicago-gebied
  • 14 mei 2009
Een korte opmerking over automatische conversie en gekte met drijvende komma...

Guiyon zei: Daar is je probleem, tan retourneert een dubbele maar de %d formaat string verwacht een geheel getal. Het veranderen van '%d' in '%lf' zou dat moeten oplossen. Als u 'man 3 printf' typt op de terminal, krijgt u veel meer informatie over de tekenreeksen in printf-stijl die Apple (en veel andere bibliotheken) gebruiken; zoek naar het gedeelte dat begint met 'De opmaakreeks bestaat uit nul of meer richtlijnen'

Deze 'magische' type conversies vinden niet plaats tenzij de compiler weet dat er een zou moeten zijn. Een geval waarin het het niet weet, is in code zoals stringWithFormat: - het weet niet echt dat er een conversie zou moeten zijn, dus geeft het vrolijk een dubbel door. Als je eenmaal met drijvende-kommatypen begint te spelen, moet je daar op letten.

Nog een korte opmerking over typen met drijvende komma. Schrijf geen code zoals: Code: |_+_| Het probleem met = en drijvende-kommatypen is dat het zeer onwaarschijnlijk is dat ze gelijk zijn. Zelfs zoiets als: Code: |__+_| Op uw whiteboard zijn deze nummers hetzelfde. In de computer hoeven ze dat niet te zijn. Het is raar, maar je moet eraan wennen. m

MrPenguin9

Originele affiche
1 aug. 2008
  • 15 mei 2009
Het werkte.

Bedankt allemaal om mij te helpen!