Domnul Pinguin9
Poster original- 1 august 2008
- 13 mai 2009
Mulțumiri
SilentPanda
Moderator emerit
- 8 octombrie 2002
- Pădurea de bambus
- 13 mai 2009
Domnul Pinguin9
Poster original- 1 august 2008
- 13 mai 2009
Mulțumiri
PhoneyDeveloper
- 2 septembrie 2008
- 13 mai 2009
Mai este ceva?
Încercați să introduceți acest lucru în terminal sau căutați-l pe google
om păcat M
Domnul Pinguin9
Poster original- 1 august 2008
- 13 mai 2009
Mulțumiri R
Ron C
- 18 iulie 2008
- Zona Chicago
- 13 mai 2009
MrPenguin9 a spus: Dar când fac „tan(1)” în xcode, îmi dă înapoi 1556013989!?!? Dar bronzul lui 1 este 0,017455... Ce greșesc?
Mulțumiri
1556013989? S-ar putea să imprime doar o valoare formatată în virgulă mobilă ca un întreg fără conversia tipului?
De unde obțineți această funcție tan()? matematică.h? Ce tip returnează tan(), de exemplu? Este nevoie de radiani sau grade? În ce tip stocați valoarea returnată?
Am verificat pagina de manual pentru tan() și spune:
Cod: |_+_| Deci.... singura funcție care se potrivește cu semnătura respectivă ia un dublu (conversie automată) și returnează un dublu (de asemenea, conversie automată) și ia radiani.
Cum vedeți valoarea? Cum arată codul tău?
EDIT: Tocmai am verificat valoarea tan(1 radian) în Calculator.app - scrie: 1.557408. Deci... de ce crezi că ar trebui să fie 0,017455? Aceasta este valoarea bronzului (1 GRAD) M
Domnul Pinguin9
Poster original- 1 august 2008
- 13 mai 2009
Guiyon
- 19 aprilie 2008
- Cambridge, MA
- 13 mai 2009
MrPenguin9 a spus: -(void)wakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}
Este problema ta, tan returnează un dublu, dar șirul de format %d așteaptă un număr întreg. Schimbarea lui „%d” în „%lf” ar trebui să rezolve asta. Tastarea „man 3 printf” la terminal vă va oferi mai multe informații despre șirurile de format în stil printf pe care le utilizează Apple (și multe alte biblioteci); căutați partea care începe cu „Șirul de format este compus din zero sau mai multe directive” R
Ron C
- 18 iulie 2008
- Zona Chicago
- 14 mai 2009
Guiyon a spus: Este problema ta, tan returnează un dublu, dar șirul de format %d așteaptă un număr întreg. Schimbarea lui „%d” în „%lf” ar trebui să rezolve asta. Tastarea „man 3 printf” la terminal vă va oferi mai multe informații despre șirurile de format în stil printf pe care le utilizează Apple (și multe alte biblioteci); căutați partea care începe cu „Șirul de format este compus din zero sau mai multe directive”
Aceste conversii de tip „magic” nu au loc decât dacă compilatorul știe că ar trebui să existe una. Un caz în care nu va ști este în cod precum stringWithFormat: - nu știe cu adevărat că ar trebui să existe o conversie, așa că trece vesel de-a lungul unui dublu. Odată ce începeți să jucați cu tipuri de virgulă mobilă, trebuie să acordați atenție acestui lucru.
O altă notă scurtă despre tipurile de virgulă mobilă. Nu scrie cod ca: Cod: |_+_| Problema cu tipurile = și virgulă mobilă este că este foarte puțin probabil să fie egale. Chiar și ceva de genul: Cod: |_+_| Pe tabla dvs., aceste numere sunt aceleași. În interiorul computerului, nu trebuie să fie. E ciudat, dar trebuie să te obișnuiești. M
Domnul Pinguin9
Poster original- 1 august 2008
- 15 mai 2009
Vă mulțumesc tuturor pentru că m-ați ajutat!
Posturi Populare