การแปลงชนิดตัวเลขอย่างชัดเจน
แปลงระหว่างชนิดตัวเลขอย่างตั้งใจเพื่อหลีกเลี่ยงข้อผิดพลาด
การแปลงชนิดตัวเลขอย่างชัดเจน เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
Swift ต้องการการแปลงอย่างชัดแจ้ง
Swift ไม่แปลงชนิดข้อมูลตัวเลขระหว่างกันโดยอัตโนมัติ หากต้องการใช้ Int ร่วมกับ Double คุณต้องแปลงชนิดใดชนิดหนึ่งอย่างชัดแจ้ง
let count = 3
let price = 2.5
let total = Double(count) * price
print(total)เหตุผลที่ไม่มีการแปลงโดยนัย
การแปลงโดยนัยอาจทำให้ข้อมูลสูญหายหรือความหมายเปลี่ยนไปโดยไม่แจ้งให้ทราบ Swift จึงบังคับให้คุณระบุเจตนาอย่างชัดเจน เพื่อป้องกันข้อผิดพลาดที่ตรวจพบได้ยาก
let whole = 7
let fraction = 0.5
let result = Double(whole) + fraction
print(result)การแปลงจำนวนเต็มเป็นจำนวนจุดลอยตัว
ครอบจำนวนเต็มด้วย Double(...) เพื่อเปลี่ยนเป็นรูปแบบจุดลอยตัว ซึ่งจำเป็นก่อนการหารแบบมีเศษจริง
let a = 7
let b = 2
let ratio = Double(a) / Double(b)
print(ratio)การแปลงจำนวนจุดลอยตัวเป็นจำนวนเต็ม
การใช้ Int(...) กับค่า Double จะตัดเศษเข้าหาศูนย์และทิ้งส่วนเศษไป ไม่ใช่การปัดเศษ
let value = 3.99
print(Int(value))
print(Int(-3.99))การปัดเศษก่อนการแปลง
หากต้องการปัดเศษแทนการตัดเศษ ให้เรียกใช้ .rounded() ก่อน แล้วจึงแปลงเป็น Int
let value = 3.6
let rounded = Int(value.rounded())
print(rounded)การแปลงระหว่างชนิดจำนวนเต็ม
แม้แต่การแปลงจากจำนวนเต็มชนิดหนึ่งเป็นอีกชนิดหนึ่งก็ต้องทำอย่างชัดแจ้ง เช่น Int(small) หรือ Int8(big) เพราะช่วงค่าของแต่ละชนิดแตกต่างกัน
let small: Int8 = 100
let big: Int = Int(small)
print(big + 1000)การแปลงที่ทำให้ค่าเกินช่วง
การแปลงค่าที่ไม่พอดีกับชนิดเป้าหมายจะทำให้โปรแกรมหยุดทำงานขณะรัน หากไม่แน่ใจ โปรดตรวจสอบช่วงค่าก่อน
let n = 200
if n <= Int(Int8.max) {
print("fits")
} else {
print("would overflow Int8")
}ตัวเริ่มต้นตัวเลขที่อาจล้มเหลว
การแปลงบางอย่างใช้ตัวเริ่มต้นที่อาจล้มเหลว เช่น Int8(exactly:) ซึ่งคืนค่าทางเลือก และคืนค่า nil เมื่อค่าไม่พอดีกับชนิดเป้าหมายอย่างแม่นยำ
let ok = Int8(exactly: 100)
let bad = Int8(exactly: 300)
print(ok as Any)
print(bad as Any)การแปลงข้อความเป็นจำนวน
การแปลง String เป็นจำนวนก็ต้องทำอย่างชัดแจ้งและอาจล้มเหลว โดยคืนค่าทางเลือกในกรณีที่ข้อความไม่ใช่จำนวนที่ถูกต้อง
let text = "42"
if let n = Int(text) {
print("Parsed:", n)
}
print(Int("hello") as Any)การคำนวณร่วมกับตัวเลขต่างชนิด
รูปแบบที่ใช้ทั่วไปคือ แปลงตัวถูกดำเนินการทั้งหมดให้เป็นชนิดกลางชนิดเดียวกัน คำนวณ จากนั้นจึงแปลงผลลัพธ์สุดท้ายกลับหากจำเป็น
let items = 5
let pricePerItem = 1.99
let total = Double(items) * pricePerItem
let rounded = (total * 100).rounded() / 100
print("Total:", rounded)การแปลงช่วยให้โค้ดปลอดภัย
การแปลงอย่างชัดแจ้งทำให้เห็นว่าความแม่นยำเปลี่ยนแปลงตรงไหน ช่วยให้ตรวจสอบและทำความเข้าใจโค้ดตัวเลขได้ง่ายขึ้น
let measured = 9.81
let asInt = Int(measured)
let backToDouble = Double(asInt)
print(measured, asInt, backToDouble)ตรวจสอบอย่างรวดเร็ว
จงคาดเดาผลลัพธ์ของการแปลง Double เป็น Int
สรุป: การแปลงชนิดตัวเลขอย่างชัดแจ้ง
คุณได้เรียนรู้ว่า Swift ไม่เคยแปลงชนิดตัวเลขโดยนัย Int(...) จะตัดเศษของ Double ขณะที่ Double(...) จะขยายค่าของ Int และตัวเริ่มต้นที่อาจล้มเหลว เช่น Int8(exactly:) และ Int("text") จะคืนค่าทางเลือกเมื่อการแปลงไม่สำเร็จ
let pieces = 7
let share = Double(pieces) / 2.0
print("Share:", share)
print("Truncated:", Int(share))คำถามที่พบบ่อย
บทเรียน “การแปลงชนิดตัวเลขอย่างชัดเจน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแปลงชนิดตัวเลขอย่างชัดเจน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแปลงชนิดตัวเลขอย่างชัดเจน”
แปลงระหว่างชนิดตัวเลขอย่างตั้งใจเพื่อหลีกเลี่ยงข้อผิดพลาด คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การแปลงชนิดตัวเลขอย่างชัดเจน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดจำนวนเต็มและช่วงค่า
- จำนวนทศนิยม: Double กับ Float
- การแปลงชนิดตัวเลขอย่างชัดเจน
- ค่าคงที่ตัวเลขและขีดล่าง