Fóra

iOS Ako používate sin, cos a tan?

M

MrPenguin9

Pôvodný plagát
1. augusta 2008
  • 13. mája 2009
Ako používate sin, cos a tan v iPhone sdk? A tiež ako používate ich inverzné?

Vďaka

SilentPanda

Emeritný moderátor
8. októbra 2002
Bambusový les


  • 13. mája 2009
Hádam by ste použili len verzie C cos, sin a tan. M

MrPenguin9

Pôvodný plagát
1. augusta 2008
  • 13. mája 2009
Môžem mať na to príklad, prosím.

Vďaka

PhoneyDeveloper

2. september 2008
  • 13. mája 2009
Kód: |_+_|
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
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 R

Ron C

18. júla 2008
Oblasť Chicaga
  • 13. mája 2009
Zapácha to ako problém typu

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
Tu je môj kód z MainView.m Kód: |_+_| (Oh, a nevedel som, že tan(x) je v radiánoch.) Ďakujem vám za pomoc! G

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
Rýchla poznámka o automatickej konverzii a podivnosti s pohyblivou rádovou čiarkou...

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
Fungovalo to.

Ďakujem vám všetkým, že ste mi pomohli!