MrPenguin9
Orihinal na poster- Agosto 1, 2008
- Mayo 13, 2009
Salamat
SilentPanda
Moderator emeritus
- Oktubre 8, 2002
- Ang Bamboo Forest
- Mayo 13, 2009
MrPenguin9
Orihinal na poster- Agosto 1, 2008
- Mayo 13, 2009
Salamat
PhoneyDeveloper
- Setyembre 2, 2008
- Mayo 13, 2009
May iba pa ba?
Subukang i-type ito sa terminal o i-google ito
kasalanan ng tao M
MrPenguin9
Orihinal na poster- Agosto 1, 2008
- Mayo 13, 2009
Salamat R
Ron C
- Hul 18, 2008
- Chicago-lugar
- Mayo 13, 2009
Sinabi ni MrPenguin9: Ngunit kapag ginawa ko ang 'tan(1)' sa xcode ibinabalik nito sa akin ang 1556013989!?!? Ngunit ang tan ng 1 ay 0.017455... Ano ang mali ko?
Salamat
1556013989? Maaaring nagpi-print lang ito ng floating-point-formatted value bilang isang integer na walang uri ng conversion?
Saan mo nakukuha itong tan() function? math.h? Anong uri ang ibinabalik ng tan(), halimbawa? Ito ba ay tumatagal ng radians o degrees? Sa anong uri ka nag-iimbak ng return value?
Sinuri ko ang man page para sa tan() at sinasabi nito:
Code: |_+_| Kaya.... ang tanging function na tumutugma sa signature na iyon ay tumatagal ng doble (awtomatikong conversion) at nagbabalik ng doble (at awtomatikong conversion) at kumukuha ng mga radian.
Paano mo tinitingnan ang halaga? Ano ang hitsura ng iyong code?
EDIT: Sinuri ko lang ang halaga ng tan(1 radian) sa Calculator.app - sabi nito: 1.557408. Kaya... bakit sa tingin mo ito ay dapat na 0.017455? Iyan ang halaga ng tan(1 DEGREE) M
MrPenguin9
Orihinal na poster- Agosto 1, 2008
- Mayo 13, 2009
Guiyon
- Abr 19, 2008
- Cambridge, MA
- Mayo 13, 2009
Sinabi ni MrPenguin9: -(void)awakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}
Nariyan ang iyong problema, nagbabalik si tan ng doble ngunit ang %d format string ay umaasa ng isang integer. Ang pagpapalit ng '%d' sa '%lf' ay dapat ayusin iyon. Ang pag-type ng 'man 3 printf' sa terminal ay magbibigay sa iyo ng mas maraming impormasyon tungkol sa printf-style format strings na ginagamit ng Apple (at marami pang ibang library); hanapin ang bahaging nagsisimula sa 'Ang format na string ay binubuo ng zero o higit pang mga direktiba' R
Ron C
- Hul 18, 2008
- Chicago-lugar
- Mayo 14, 2009
Sinabi ni Guiyon: Nariyan ang iyong problema, nagbabalik ang tan ng doble ngunit ang %d format string ay umaasa ng isang integer. Ang pagpapalit ng '%d' sa '%lf' ay dapat ayusin iyon. Ang pag-type ng 'man 3 printf' sa terminal ay magbibigay sa iyo ng mas maraming impormasyon tungkol sa printf-style format strings na ginagamit ng Apple (at marami pang ibang library); hanapin ang bahaging nagsisimula sa 'Ang format na string ay binubuo ng zero o higit pang mga direktiba'
Ang mga 'magic' type na conversion na ito ay hindi nangyayari maliban kung alam ng compiler na dapat mayroong isa. Isang kaso kung saan hindi nito malalaman ay nasa code tulad ng stringWithFormat: - hindi talaga nito alam na dapat magkaroon ng conversion, kaya masaya itong dumadaan sa doble. Kapag nagsimula kang maglaro ng mga floating-point na uri, kailangan mong bigyang pansin iyon.
Isa pang maikling tala tungkol sa mga uri ng floating-point. Huwag magsulat ng code tulad ng: Code: |_+_| Ang problema sa = at mga floating point na uri ay ang mga ito ay napaka-malamang na hindi pantay. Kahit na tulad ng: Code: |__+_| Sa iyong whiteboard, pareho ang mga numerong ito. Sa loob ng computer, hindi nila kailangang maging. Ito ay kakaiba, ngunit kailangan mong masanay. M
MrPenguin9
Orihinal na poster- Agosto 1, 2008
- Mayo 15, 2009
Salamat sa lahat ng tumulong sa akin!
Patok Na Mga Post