Senyor Pingüí 9
Cartell original- 1 d'agost de 2008
- 13 de maig de 2009
Gràcies
SilentPanda
Moderador emèrit
- Oct 8, 2002
- El bosc de bambú
- 13 de maig de 2009
Senyor Pingüí 9
Cartell original- 1 d'agost de 2008
- 13 de maig de 2009
Gràcies
PhoneyDeveloper
- set 2, 2008
- 13 de maig de 2009
Hi ha alguna cosa més?
Proveu d'escriure això al terminal o busqueu-lo a Google
home pecat M
Senyor Pingüí 9
Cartell original- 1 d'agost de 2008
- 13 de maig de 2009
Gràcies R
Ron C
- Jul 18, 2008
- Àrea de Chicago
- 13 de maig de 2009
MrPenguin9 va dir: Però quan faig 'tan(1)' a xcode em retorna 1556013989!?!? Però el bronzejat d'1 és 0,017455... Què estic fent malament?
Gràcies
1556013989? Pot ser que només estigui imprimint un valor amb format de coma flotant com a nombre enter sense la conversió de tipus?
D'on treus aquesta funció tan()? matemàtiques.h? Quin tipus retorna tan(), per exemple? Es necessiten radians o graus? En quin tipus emmagatzemeu el valor de retorn?
Vaig comprovar la pàgina de manual per a tan() i diu:
Codi: |_+_| Per tant... l'única funció que coincideix amb aquesta signatura pren un doble (conversió automàtica) i retorna un doble (també conversió automàtica) i pren radians.
Com veus el valor? Com és el teu codi?
EDIT: acabo de comprovar el valor de tan (1 radian) a Calculator.app - diu: 1,557408. Aleshores... per què creus que hauria de ser 0,017455? Aquest és el valor de tan(1 GRAU) M
Senyor Pingüí 9
Cartell original- 1 d'agost de 2008
- 13 de maig de 2009
Guiyon
- Mar 19, 2008
- Cambridge, MA
- 13 de maig de 2009
MrPenguin9 va dir: -(void)wakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}
Hi ha el vostre problema, tan retorna un doble, però la cadena de format %d espera un nombre enter. Canviar el '%d' a '%lf' hauria de solucionar-ho. Escrivint 'man 3 printf' al terminal us donarà molta més informació sobre les cadenes de format d'estil printf que Apple (i moltes altres biblioteques) utilitzen; cerqueu la part que comença amb 'La cadena de format està composta per zero o més directives'. R
Ron C
- Jul 18, 2008
- Àrea de Chicago
- 14 de maig de 2009
Guiyon va dir: Hi ha el teu problema, tan retorna un doble però la cadena de format %d espera un nombre enter. Canviar el '%d' a '%lf' hauria de solucionar-ho. Escrivint 'man 3 printf' al terminal us donarà molta més informació sobre les cadenes de format d'estil printf que Apple (i moltes altres biblioteques) utilitzen; cerqueu la part que comença amb 'La cadena de format està composta per zero o més directives'.
Aquestes conversions de tipus 'màgic' no es produeixen tret que el compilador sàpiga que n'hi hauria d'haver una. Un cas en què no ho sabrà és en codi com stringWithFormat: - realment no sap que hi hauria d'haver una conversió, de manera que passa alegrement un doble. Un cop comenceu a jugar amb tipus de coma flotant, heu de parar atenció a això.
Una altra nota breu sobre els tipus de coma flotant. No escriviu codi com: Codi: |_+_| El problema amb els tipus = i coma flotant és que és molt poc probable que siguin iguals. Fins i tot alguna cosa com: Codi: |_+_| A la pissarra, aquests números són els mateixos. Dins de l'ordinador, no cal que hi siguin. És estrany, però cal acostumar-s'hi. M
Senyor Pingüí 9
Cartell original- 1 d'agost de 2008
- 15 de maig de 2009
Gràcies a tots per ajudar-me!
Entrades Populars