Forum

iOS Bagaimanakah anda menggunakan sin, cos dan tan?

M

MrPenguin9

Poster asal
1 Ogos 2008
  • 13 Mei 2009
Bagaimanakah anda menggunakan sin, cos, dan tan dalam sdk iPhone? Dan juga bagaimana anda menggunakan songsangan mereka?

terima kasih

SilentPanda

Moderator emeritus
8 Okt 2002
Hutan Buluh


  • 13 Mei 2009
Saya rasa anda hanya akan menggunakan versi C cos, sin dan tan. M

MrPenguin9

Poster asal
1 Ogos 2008
  • 13 Mei 2009
Boleh saya minta contohnya.

terima kasih

PhoneyDeveloper

2 Sep 2008
  • 13 Mei 2009
Kod: |_+_|
Adakah terdapat sesuatu lagi?

Cuba taip ini di terminal atau google

manusia berdosa M

MrPenguin9

Poster asal
1 Ogos 2008
  • 13 Mei 2009
Tetapi apabila saya melakukan 'tan(1)' dalam xcode ia memberikan saya kembali 1556013989!?!? Tetapi tan bagi 1 ialah 0.017455... Apa yang saya buat salah?

terima kasih R

Ron C

18 Jul 2008
kawasan Chicago
  • 13 Mei 2009
Bau seperti isu jenis

MrPenguin9 berkata: Tetapi apabila saya melakukan 'tan(1)' dalam xcode ia memberikan saya kembali 1556013989!?!? Tetapi tan bagi 1 ialah 0.017455... Apa yang saya buat salah?

terima kasih

1556013989? Ia mungkin hanya mencetak nilai berformat titik terapung sebagai integer tanpa penukaran jenis?

Dari mana anda mendapat fungsi tan() ini? matematik.h? Apakah jenis yang tan(), sebagai contoh, kembalikan? Adakah ia mengambil radian atau darjah? Apakah jenis anda menyimpan nilai pulangan?

Saya menyemak halaman lelaki untuk tan() dan ia berkata:
Kod: |_+_| Jadi.... satu-satunya fungsi yang sepadan dengan tandatangan itu mengambil dua kali ganda (penukaran automatik) dan mengembalikan dua kali ganda (juga penukaran automatik) dan mengambil radian.

Bagaimana anda melihat nilai? Apakah rupa kod anda?

EDIT: Saya baru sahaja menyemak nilai tan(1 radian) dalam Calculator.app - tertera: 1.557408. Jadi... mengapa anda fikir ia sepatutnya 0.017455? Itulah nilai tan(1 DEGREE) M

MrPenguin9

Poster asal
1 Ogos 2008
  • 13 Mei 2009
Di sini kod saya daripada Kod MainView.m: |__+_| (Oh, dan saya tidak tahu bahawa tan(x) dalam radian.) Terima kasih kerana membantu! G

Guiyon

19 Apr 2008
Cambridge, MA
  • 13 Mei 2009
MrPenguin9 berkata: -(kosong)awakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

Terdapat masalah anda, tan mengembalikan dua kali ganda tetapi rentetan format %d menjangkakan integer. Menukar '%d' kepada '%lf' sepatutnya membetulkannya. Menaip 'man 3 printf' di terminal akan memberi anda lebih banyak maklumat tentang rentetan format gaya printf yang Apple (dan banyak perpustakaan lain) gunakan; cari bahagian yang bermula dengan 'Rentetan format terdiri daripada sifar atau lebih arahan' R

Ron C

18 Jul 2008
kawasan Chicago
  • 14 Mei 2009
Nota ringkas tentang penukaran automatik dan keanehan titik terapung...

Guiyon berkata: Ada masalah anda, tan mengembalikan dua kali ganda tetapi rentetan format %d menjangkakan integer. Menukar '%d' kepada '%lf' sepatutnya membetulkannya. Menaip 'man 3 printf' di terminal akan memberi anda lebih banyak maklumat tentang rentetan format gaya printf yang Apple (dan banyak perpustakaan lain) gunakan; cari bahagian yang bermula dengan 'Rentetan format terdiri daripada sifar atau lebih arahan'

Penukaran jenis 'ajaib' ini tidak berlaku melainkan pengkompil mengetahui bahawa mesti ada satu. Satu kes di mana ia tidak akan tahu adalah dalam kod seperti stringWithFormat: - ia tidak benar-benar tahu bahawa perlu ada penukaran, jadi ia dengan riang melepasi dua kali ganda. Sebaik sahaja anda mula bermain dengan jenis mata terapung, anda perlu memberi perhatian kepadanya.

Satu lagi nota ringkas tentang jenis titik terapung. Jangan tulis kod seperti: Kod: |__+_| Masalah dengan = dan jenis titik terapung ialah mereka sangat tidak mungkin sama. Malah sesuatu seperti: Kod: |__+_| Di papan putih anda, nombor ini adalah sama. Di dalam komputer, mereka tidak perlu. Ia pelik, tetapi anda perlu membiasakannya. M

MrPenguin9

Poster asal
1 Ogos 2008
  • 15 Mei 2009
Ianya berhasil.

Terima kasih semua kerana membantu saya!