Number
ตัวเลข เป็นข้อมูลพื้นฐานที่มีอยู่หลายแบบ เช่น Int, UInt, Double และ Float ซึ่งมักถูกใช้บ่อยในการเขียนโปรแกรมและการประมวลผลทางสถิติ
Integer
Integer คือ ข้อมูลประเภทตัวเลขจำนวนเต็มซึ่งประกอบด้วย ค่าบวกค่าลบ และเลขศูนย์ ซึ่งตัวเลขเหล่านั้นจะต้องไม่มีทศนิยม ตัวอย่างเช่น 25, -3 หรือ 0 เป็นต้น
ค่าเริ่มต้นของ Integer คือ 0 และสามารถเลือกใช้งานได้อยู่ 2 รูปแบบใหญ่ๆ คือ
แบบมีเครื่องหมาย (signed integer) ซึ่งประกอบด้วย จำนวนเต็มลบ จำนวนศูนย์ และจำนวนเต็มบวก เช่น
Int
,Int8
,Int16
,Int32
เป็นต้นแบบไม่มีเครื่องหมาย (unsigned integer) ซึ่งประกอบด้วย จำนวนศูนย์และจำนวนเต็มบวกเท่านั้น เช่น
UInt
,UInt8
,UInt16
,UInt32
เป็นต้น
คำสั่งสำหรับการหาค่า max และ min ของ Integer เพื่อดูช่วงของข้อมูล
print(Int.min)
print(Int.max)
Int8
และUInt8
มีขนาดของข้อมูลเท่ากับ 8 บิตช่วงข้อมูลของ
Int8
คือ -128 ถึง 127ช่วงข้อมูลของ
UInt8
คือ 0 ถึง 255
Int16
และUInt16
มีขนาดของข้อมูลเท่ากับ 16 บิตช่วงข้อมูลของ
Int16
คือ -32,768 ถึง 32,767ช่วงข้อมูลของ
UInt16
คือ 0 ถึง 65,535
Int32
และUInt32
มีขนาดของข้อมูลเท่ากับ 32 บิตช่วงข้อมูลของ
Int32
คือ -2,147,483,648 ถึง 2,147,483,647ช่วงข้อมูลของ
UInt32
คือ 0 ถึง 4,294,967,295
Int
และUInt
มีขนาดของข้อมูลเท่ากับ 64 บิตช่วงข้อมูลของ
Int
คือ -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807ช่วงข้อมูลของ
UInt
คือ 0 ถึง 18,446,744,073,709,551,615
Floating-Point Number
Floating-Point Number คือ ข้อมูลตัวเลขแบบมีทศนิยม เช่น 3.14, 0.4127 หรือ -273.15 เป็นต้น ซึ่งค่าเริ่มต้นของข้อมูล คือ 0.0 และมีให้เลือกใช้อยู่ 2 รูปแบบ คือ
Float
มีขนาด: 32 บิต, ความแม่นยำ ≥6 decimal digitsDouble
มีขนาด: 64 บิต, ความแม่นยำ ≥15 decimal digits
//Float data type
let floatingScore: Float = 100.232
print(floatingScore)
//Double data type
let doubleScore: Double = 100.232321212121
print(doubleScore)
Numeric Type Conversion
การแปลงค่าระหว่าง Integer และ Integer
let daysInYear: Int16 = 365
let daysInJanuary: UInt8 = 31
let totalDays = daysInYear + Int16(daysInJanuary)
let littleUInt16 = 120
let littleUInt8: UInt8 = UInt8(littleUInt16)
let bigUInt16 = 1440
let bitUInt8: UInt8 = UInt8(bigUInt16) // Compiler error.
การแปลงค่าระหว่าง Integer และ Floating-Point number
let startingRatio = 1 // กำหนดเป็น Int
let frationalRatio = 0.61803398875 //กำหนดเป็น Double
let goldenRatio = Double(startingRatio) + frationalRatio
// goldenRatio มีค่าเท่ากับ 1.61803398875 และเป็น Double
let integerGoldenRatio = Int(goldenRatio)
//goldenRatio มีค่าเท่ากับ 1 และเป็น Int
การดำเนินการกับตัวเลข
คำสั่ง
round(จำนวน)
ใช้ในการประมาณค่าด้วยการปัดเศษทศนิยม โดยหากเศษมีค่ามากกว่า 0.5 จะปัดขึ้นเป็นจำนวนเต็มถัดไป แต่หากเศษน้อยกว่า 0.5 จะปัดทิ้งคำสั่ง
floor(จำนวน)
ใช้ในการปัดทศนิยมทิ้งเป็นจำนวนเต็มที่อยู่ข้างล่างของจำนวนที่ระบุคำสั่ง
ceil(จำนวน)
ใช้ในการปัดทศนิยมขึ้นเป็นจำนวนเต็มที่อยู่ข้างบนของจำนวนที่ระบุคำสั่ง
trunc(จำนวน)
ใช้ในการตัดเศษทศนิยมทิ้งโดยไม่มีการปัดค่าจำนวนเต็มคำสั่ง
abs(จำนวน)
ใช้ในการหาค่าสัมบูรณ์ (absolute)คำสั่ง
sqrt(จำนวน)
ใช้ในการหารากที่ 2คำสั่ง
pow(เลขฐาน,เลขชี้กำลัง)
ใช้หาค่าเลขยกกำลังคำสั่ง
drand48()
ใช้ในการสุ่มตัวเลขจาก 0.0 ถึง 1.0คำสั่ง
arc4random()
ใช้ในการสุ่มตัวเลขจากข้อมูลชนิด UInt32คำสั่ง
arc4random_uniform(ขอบเขตบน)
ใช้ในการสุ่มตัวเลขชนิด UInt32 ตั้งแต่ 0 จนถึงขอบเขตบนที่กำหนด - 1 เช่นarc4random_uniform(10)
คือ การสุ่มเลขจาก 0 ถึง 9
NumberFormatter
เราสามารถจัดรูปแบบการแสดงผลของตัวเลขได้โดยใช้ NumberFormatter ซึ่งมีตัวอย่างการใช้งานดังนี้
let numFormat = NumberFormatter()
numFormat.numberStyle = .decimal //ระบุว่าต้องการจัดรูปแบบเป็นเลขฐาน 10
//การจัดรูปแบบการแสดงตัวเลขเป็นข้อความด้วย string(for:)
if let result = numFormat.string(from: 10459) {
print(result) // 10,459
}
print(numFormat.string(from: 2956)!) //2,956
print(numFormat.string(from: 1352.567985)!) //1,352.568
//กรณีต้องการระบุจำนวนทศนิยมที่ใช้แสดงผล
numFormat.maximumFractionDigits = 2
print(numFormat.string(from: 1352.567985)!) //1,352.57
numFormat.minimumFractionDigits = 3
print(numFormat.string(from: 13.2)!) //13.200
สามารถศึกษาเกี่ยวกับ NumberFormatter เพิ่มเติมได้ที่ https://developer.apple.com/documentation/foundation/numberformatter
แหล่งข้อมูลอ้างอิง
The Swift Programming Language (Swift 5.2 beta), Apple Inc., 2020
Last updated
Was this helpful?