MrPenguin9
Originele affiche- 1 aug. 2008
- 13 mei 2009
Bedankt
Stille Panda
emeritus moderator
- 8 okt 2002
- Het Bamboebos
- 13 mei 2009
MrPenguin9
Originele affiche- 1 aug. 2008
- 13 mei 2009
Bedankt
PhoneyOntwikkelaar
- 2 sep. 2008
- 13 mei 2009
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
Bedankt R
Ron C
- 18 juli 2008
- Chicago-gebied
- 13 mei 2009
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
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
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
Bedankt allemaal om mij te helpen!
Populaire Berichten