Forum

iOS Jak używać sin, cos i tan?

m

MrPenguin9

Oryginalny plakat
1 sierpnia 2008
  • 13 maja 2009
Jak używać sin, cos i tan w sdk iPhone'a? A także jak używasz ich odwrotności?

Dziękuję

CichaPanda

Emerytowany Moderator
8 paź 2002
Bambusowy Las


  • 13 maja 2009
Zgaduję, że po prostu użyjesz wersji C cos, sin i tan. m

MrPenguin9

Oryginalny plakat
1 sierpnia 2008
  • 13 maja 2009
Czy mogę prosić o przykład.

Dziękuję

PhoneyDeveloper

2 września 2008 r.
  • 13 maja 2009
Kod: |__+_|
Czy jest coś więcej?

Spróbuj wpisać to w terminalu lub wygoogluj to

człowiek grzech m

MrPenguin9

Oryginalny plakat
1 sierpnia 2008
  • 13 maja 2009
Ale kiedy robię 'tan(1)' w xcode, daje mi to 1556013989!?!? Ale opalenizna 1 to 0,017455... Co robię źle?

Dziękuję r

Ron C

18 lipca 2008 r.
Chicago-rejon
  • 13 maja 2009
Pachnie jak problem z czcionką

MrPenguin9 powiedział: Ale kiedy robię „tan(1)” w xcode, daje mi to 1556013989!?!? Ale opalenizna 1 to 0,017455... Co robię źle?

Dziękuję

1556013989? Może to być po prostu drukowanie sformatowanej wartości zmiennoprzecinkowej jako liczby całkowitej bez konwersji typu?

Skąd otrzymujesz tę funkcję tan()? matematyka? Jaki typ zwraca na przykład tan()? Czy to wymaga radianów czy stopni? W jakim typie przechowujesz zwracaną wartość?

Sprawdziłem stronę podręcznika pod kątem tan() i jest na niej napisana:
Kod: |__+_| Tak więc... jedyna funkcja, która pasuje do tej sygnatury, przyjmuje wartość double (automatyczna konwersja) i zwraca wartość double (również automatyczna konwersja) oraz pobiera radiany.

Jak oceniasz wartość? Jak wygląda Twój kod?

EDYCJA: Właśnie sprawdziłem wartość tan (1 radian) w Calculator.app - jest napisane: 1.557408. Więc... dlaczego uważasz, że powinno to być 0,017455? To jest wartość tan (1 STOPIEŃ) m

MrPenguin9

Oryginalny plakat
1 sierpnia 2008
  • 13 maja 2009
Oto mój kod z MainView.m Kod: |_+_| (Och, i nie wiedziałem, że tan(x) jest w radianach.) Dziękuję wam za pomoc! g

Guijon

19 kwi 2008
Cambridge, MA
  • 13 maja 2009
MrPenguin9 powiedział: -(unieważnij)budźFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

Masz problem, tan zwraca liczbę double, ale ciąg formatu %d oczekuje liczby całkowitej. Zmiana '%d' na '%lf' powinna to naprawić. Wpisanie 'man 3 printf' na terminalu da ci dużo więcej informacji o łańcuchach formatu printf, których używa Apple (i wiele innych bibliotek); poszukaj części, która zaczyna się od „Ciąg formatu składa się z zera lub więcej dyrektyw” r

Ron C

18 lipca 2008 r.
Chicago-rejon
  • 14 maja 2009
Krótka uwaga na temat automatycznej konwersji i dziwności zmiennoprzecinkowych...

Guiyon powiedział: Masz problem, tan zwraca liczbę podwójną, ale ciąg formatu %d oczekuje liczby całkowitej. Zmiana '%d' na '%lf' powinna to naprawić. Wpisanie 'man 3 printf' na terminalu da ci dużo więcej informacji o łańcuchach formatu printf, których używa Apple (i wiele innych bibliotek); poszukaj części, która zaczyna się od „Ciąg formatu składa się z zera lub więcej dyrektyw”

Te „magiczne” konwersje typu nie występują, chyba że kompilator wie, że powinien istnieć. Jeden przypadek, w którym nie będzie wiedział, jest w kodzie, takim jak stringWithFormat: - tak naprawdę nie wie, że powinna nastąpić konwersja, więc radośnie przechodzi przez podwójną. Kiedy zaczniesz grać z typami zmiennoprzecinkowymi, musisz zwrócić na to uwagę.

Kolejna krótka uwaga na temat typów zmiennoprzecinkowych. Nie pisz kodu takiego jak: Kod: |_+_| Problem z = i typami zmiennoprzecinkowymi polega na tym, że jest bardzo mało prawdopodobne, aby były równe. Nawet coś takiego: Kod: |_+_| Na tablicy te liczby są takie same. Nie muszą być w komputerze. To dziwne, ale musisz się do tego przyzwyczaić. m

MrPenguin9

Oryginalny plakat
1 sierpnia 2008
  • 15 maja 2009
Zadziałało.

Dziękuję wszystkim za pomoc!