MrPenguin9
Pôvodný plagát- 1. augusta 2008
- 13. mája 2009
Vďaka
SilentPanda
Emeritný moderátor
- 8. októbra 2002
- Bambusový les
- 13. mája 2009
MrPenguin9
Pôvodný plagát- 1. augusta 2008
- 13. mája 2009
Vďaka
PhoneyDeveloper
- 2. september 2008
- 13. mája 2009
je ešte niečo viac?
Skúste to zadať do terminálu alebo vygoogliť
človek hriech M
MrPenguin9
Pôvodný plagát- 1. augusta 2008
- 13. mája 2009
Vďaka R
Ron C
- 18. júla 2008
- Oblasť Chicaga
- 13. mája 2009
MrPenguin9 povedal: Ale keď urobím 'tan(1)' v xcode, vráti mi to 1556013989!?!? Ale opálenie 1 je 0,017455... Čo robím zle?
Vďaka
1556013989? Môže to len tlačiť hodnotu vo formáte s pohyblivou rádovou čiarkou ako celé číslo bez konverzie typu?
Odkiaľ získavate túto funkciu tan()? math.h? Aký typ vráti napríklad tan()? Chce to radiány alebo stupne? Do akého typu ukladáte návratovú hodnotu?
Skontroloval som manuálovú stránku pre tan() a hovorí:
Kód: |_+_| Takže.... jediná funkcia, ktorá sa zhoduje s týmto podpisom, berie dvojnásobok (automatická konverzia) a vracia dvojnásobok (tiež automatická konverzia) a berie radiány.
Ako sa pozeráte na hodnotu? Ako vyzerá váš kód?
EDIT: Práve som skontroloval hodnotu tan (1 radián) v Calculator.app - hovorí: 1.557408. Takže... prečo si myslíte, že by to malo byť 0,017455? To je hodnota tan (1 DEGREE) M
MrPenguin9
Pôvodný plagát- 1. augusta 2008
- 13. mája 2009
Guiyon
- 19. apríla 2008
- Cambridge, MA
- 13. mája 2009
MrPenguin9 povedal: -(void)wakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}
Tu je váš problém, tan vracia double, ale formátovací reťazec %d očakáva celé číslo. Zmena '%d' na '%lf' by to mala vyriešiť. Zadaním 'man 3 printf' na termináli získate oveľa viac informácií o formátovacích reťazcoch v štýle printf, ktoré Apple (a mnoho ďalších knižníc) používa; vyhľadajte časť, ktorá začína výrazom „Formátovací reťazec sa skladá z nuly alebo viacerých smerníc“ R
Ron C
- 18. júla 2008
- Oblasť Chicaga
- 14. mája 2009
Guiyon povedal: Tu je váš problém, tan vracia double, ale formátovací reťazec %d očakáva celé číslo. Zmena '%d' na '%lf' by to mala vyriešiť. Zadaním 'man 3 printf' na termináli získate oveľa viac informácií o formátovacích reťazcoch v štýle printf, ktoré Apple (a mnoho ďalších knižníc) používa; vyhľadajte časť, ktorá začína výrazom „Formátovací reťazec sa skladá z nuly alebo viacerých smerníc“
Tieto 'magické' konverzie typu sa nevyskytujú, pokiaľ kompilátor nevie, že by tam mala byť. Jeden prípad, keď to nebude vedieť, je v kóde ako stringWithFormat: - v skutočnosti nevie, že by mala nastať konverzia, takže veselo prechádza dvojitým. Keď začnete hrať s typmi s pohyblivou rádovou čiarkou, musíte tomu venovať pozornosť.
Ešte krátka poznámka o typoch s pohyblivou rádovou čiarkou. Nepíšte kód ako: Kód: |_+_| Problém s typmi = a s pohyblivou rádovou čiarkou je v tom, že je veľmi nepravdepodobné, že sa budú rovnať. Dokonca aj niečo ako: Kód: |_+_| Na vašej tabuli sú tieto čísla rovnaké. Vo vnútri počítača nemusia byť. Je to zvláštne, ale treba si na to zvyknúť. M
MrPenguin9
Pôvodný plagát- 1. augusta 2008
- 15. máj 2009
Ďakujem vám všetkým, že ste mi pomohli!
Populárne Príspevky