MrPenguin9
Originalni poster- 1. kolovoza 2008
- 13. svibnja 2009
Hvala
SilentPanda
Moderator emeritus
- 8. listopada 2002
- Bambusova šuma
- 13. svibnja 2009
MrPenguin9
Originalni poster- 1. kolovoza 2008
- 13. svibnja 2009
Hvala
PhoneyDeveloper
- 2. rujna 2008
- 13. svibnja 2009
Ima li nešto više?
Pokušajte ovo upisati u terminal ili proguglati
čovjek grijeh M
MrPenguin9
Originalni poster- 1. kolovoza 2008
- 13. svibnja 2009
Hvala R
Ron C
- 18. srpnja 2008
- Područje Chicaga
- 13. svibnja 2009
MrPenguin9 je rekao: Ali kada napravim 'tan(1)' u xcodeu, vraća mi 1556013989!?!? Ali tan od 1 je 0,017455... Što radim krivo?
Hvala
1556013989? Možda samo ispisuje vrijednost formatiranu s pomičnim zarezom kao cijeli broj bez konverzije tipa?
Odakle dobivate ovu funkciju tan()? math.h? Koji tip tan(), na primjer, vraća? Da li su potrebni radijani ili stupnjevi? U koju vrstu spremate povratnu vrijednost?
Provjerio sam man stranicu za tan() i kaže:
Šifra: |_+_| Dakle.... jedina funkcija koja odgovara tom potpisu uzima dvostruku (automatska pretvorba) i vraća dvostruku (također automatska pretvorba) i uzima radijane.
Kako gledate na vrijednost? Kako izgleda vaš kod?
EDIT: Upravo sam provjerio vrijednost tan (1 radian) u Calculator.app - kaže: 1,557408. Pa... zašto mislite da bi trebao biti 0,017455? To je vrijednost tan (1 STUPANJ) M
MrPenguin9
Originalni poster- 1. kolovoza 2008
- 13. svibnja 2009
Guiyon
- 19. travnja 2008
- Cambridge, MA
- 13. svibnja 2009
MrPenguin9 je rekao: -(void)awakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}
Tu je vaš problem, tan vraća dvostruko, ali %d niz formata očekuje cijeli broj. Promjena '%d' u '%lf' trebala bi to popraviti. Upisivanjem 'man 3 printf' na terminalu dobit ćete puno više informacija o nizovima formata u stilu printf koje koristi Apple (i mnoge druge knjižnice); potražite dio koji počinje s 'String formata se sastoji od nula ili više direktiva' R
Ron C
- 18. srpnja 2008
- Područje Chicaga
- 14. svibnja 2009
Guiyon je rekao: Tu je vaš problem, tan vraća dvostruko, ali %d niz formata očekuje cijeli broj. Promjena '%d' u '%lf' trebala bi to popraviti. Upisivanjem 'man 3 printf' na terminalu dobit ćete puno više informacija o nizovima formata u stilu printf koje koristi Apple (i mnoge druge knjižnice); potražite dio koji počinje s 'String formata se sastoji od nula ili više direktiva'
Ove 'čarobne' pretvorbe tipa se ne događaju osim ako prevodilac zna da bi trebala postojati. Jedan slučaj u kojem neće znati je u kodu kao što je stringWithFormat: - zapravo ne zna da bi trebala postojati konverzija, pa veselo prolazi duž dvostrukog. Kada se počnete igrati s tipovima s pomičnim zarezom, morate obratiti pažnju na to.
Još jedna kratka napomena o tipovima s pomičnim zarezom. Nemojte pisati kod kao što je: Šifra: |_+_| Problem s tipovima = i s pomičnim zarezom je što je malo vjerojatno da će biti jednaki. Čak nešto poput: Šifra: |_+_| Na vašoj bijeloj ploči ovi brojevi su isti. Unutar računala ne moraju biti. Čudno je, ali treba se naviknuti. M
MrPenguin9
Originalni poster- 1. kolovoza 2008
- 15. svibnja 2009
Hvala svima što ste mi pomogli!
Popularni Postovi