ฟอรั่ม

iOS คุณใช้ sin, cos และ tan อย่างไร?

NS

MrPenguin9

โปสเตอร์ต้นฉบับ
1 ส.ค. 2551
  • 13 พฤษภาคม 2552
คุณใช้ sin, cos และ tan ใน iPhone sdk อย่างไร? และคุณใช้อินเวอร์สของพวกมันอย่างไร?

ขอบคุณ

หมีแพนด้า

กิตติคุณผู้ดำเนินรายการ
8 ต.ค. 2545
ป่าไผ่


  • 13 พฤษภาคม 2552
ฉันเดาว่าคุณคงใช้เวอร์ชัน C ของ cos, sin และ tan NS

MrPenguin9

โปสเตอร์ต้นฉบับ
1 ส.ค. 2551
  • 13 พฤษภาคม 2552
ฉันขอตัวอย่างนั้นได้ไหม

ขอบคุณ

PhoneyDeveloper

2 ก.ย. 2551
  • 13 พฤษภาคม 2552
รหัส: |_+_|
มีอะไรเพิ่มเติมอีกไหม

ลองพิมพ์สิ่งนี้ในเทอร์มินัลหรือ google it

คนบาป NS

MrPenguin9

โปสเตอร์ต้นฉบับ
1 ส.ค. 2551
  • 13 พฤษภาคม 2552
แต่เมื่อฉันทำ 'tan(1)' ใน xcode มันทำให้ฉันกลับมา 1556013989!?!? แต่สีแทนของ 1 คือ 0.017455... ฉันทำอะไรผิด

ขอบคุณ NS

รอน ซี

18 ก.ค. 2551
เขตชิคาโก
  • 13 พฤษภาคม 2552
มีกลิ่นเหมือนปัญหาประเภท

MrPenguin9 กล่าวว่า: แต่เมื่อฉันทำ 'tan (1)' ใน xcode มันให้เงินคืน 1556013989!?!? แต่สีแทนของ 1 คือ 0.017455... ฉันทำอะไรผิด

ขอบคุณ

1556013989? อาจเป็นเพียงการพิมพ์ค่ารูปแบบทศนิยมเป็นจำนวนเต็มโดยไม่มีการแปลงประเภทหรือไม่

คุณได้รับฟังก์ชัน tan() นี้มาจากไหน คณิต.ห? tan() ประเภทใดที่ส่งคืน มันใช้เรเดียนหรือองศา? คุณเก็บค่าส่งคืนประเภทใด

ฉันตรวจสอบ man page สำหรับ tan() และมันบอกว่า:
รหัส: |_+_| ดังนั้น.... ฟังก์ชันเดียวที่ตรงกับลายเซ็นนั้นจะใช้ double (การแปลงอัตโนมัติ) และคืนค่า double (เช่นการแปลงอัตโนมัติ) และรับเรเดียน

มองคุณค่าอย่างไร? รหัสของคุณมีลักษณะอย่างไร

แก้ไข: ฉันเพิ่งตรวจสอบค่าของ tan(1 เรเดียน) ใน Calculator.app - มันบอกว่า: 1.557408 แล้วทำไม...คุณคิดว่าควรเป็น 0.017455? นั่นคือค่าของสีแทน (1 องศา) NS

MrPenguin9

โปสเตอร์ต้นฉบับ
1 ส.ค. 2551
  • 13 พฤษภาคม 2552
นี่คือรหัสของฉันจาก MainView.m รหัส: |_+_| (โอ้ และฉันไม่รู้ว่า tan(x) เป็นเรเดียน) ขอบคุณพวกคุณที่ช่วย! NS

Guiyon

19 เม.ย. 2551
เคมบริดจ์แมสซาชูเซตส์
  • 13 พฤษภาคม 2552
MrPenguin9 กล่าวว่า: - (เป็นโมฆะ) ตื่นจาก Nib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

มีปัญหาของคุณ tan คืนค่าสองเท่า แต่สตริงรูปแบบ %d ต้องการเป็นจำนวนเต็ม การเปลี่ยน '%d' เป็น '%lf' ควรแก้ไขปัญหานั้น การพิมพ์ 'man 3 printf' ที่เครื่องเทอร์มินัลจะให้ข้อมูลเพิ่มเติมเกี่ยวกับสตริงรูปแบบรูปแบบการพิมพ์ที่ Apple (และไลบรารีอื่นๆ มากมาย) ใช้ มองหาส่วนที่ขึ้นต้นด้วย 'สตริงรูปแบบประกอบด้วยคำสั่งศูนย์หรือมากกว่า' NS

รอน ซี

18 ก.ค. 2551
เขตชิคาโก
  • 14 พฤษภาคม 2552
บันทึกย่อเกี่ยวกับการแปลงอัตโนมัติและความแปลกประหลาดของทศนิยม...

Guiyon กล่าวว่า: มีปัญหาของคุณ tan ส่งคืนค่าสองเท่า แต่สตริงรูปแบบ %d ต้องการเป็นจำนวนเต็ม การเปลี่ยน '%d' เป็น '%lf' ควรแก้ไขปัญหานั้น การพิมพ์ 'man 3 printf' ที่เครื่องเทอร์มินัลจะให้ข้อมูลเพิ่มเติมเกี่ยวกับสตริงรูปแบบรูปแบบการพิมพ์ที่ Apple (และไลบรารีอื่นๆ มากมาย) ใช้ มองหาส่วนที่ขึ้นต้นด้วย 'สตริงรูปแบบประกอบด้วยคำสั่งศูนย์หรือมากกว่า'

การแปลงประเภท 'เวทย์มนตร์' เหล่านี้จะไม่เกิดขึ้นเว้นแต่คอมไพเลอร์จะรู้ว่าควรมี กรณีหนึ่งที่มันไม่รู้อยู่ในโค้ดเช่น stringWithFormat: - ไม่รู้จริงๆ ว่าควรมีการแปลง ดังนั้นมันจึงส่งต่อคู่กันอย่างสนุกสนาน เมื่อคุณเริ่มเล่นประเภททศนิยมแล้ว คุณต้องให้ความสนใจกับสิ่งนั้น

หมายเหตุสั้น ๆ อีกประการหนึ่งเกี่ยวกับประเภททศนิยม อย่าเขียนโค้ด เช่น รหัส: |_+_| ปัญหาของ = และประเภททศนิยมคือไม่น่าจะเท่ากัน แม้แต่บางอย่างเช่น: รหัส: |_+_| บนไวท์บอร์ดของคุณ ตัวเลขเหล่านี้เหมือนกัน ภายในเครื่องคอมพิวเตอร์ไม่จำเป็นต้องมี มันแปลก แต่คุณต้องชินกับมัน NS

MrPenguin9

โปสเตอร์ต้นฉบับ
1 ส.ค. 2551
  • 15 พฤษภาคม 2552
มันได้ผล

ขอบคุณทุกคนที่ช่วยฉัน!