> For the complete documentation index, see [llms.txt](https://www.monosor.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.monosor.dev/courses/ruby/numbers-and-string.md).

# ตัวเลข และชุดอักขระ

## ตัวเลข

ตัวเลขของภาษา Ruby มีสองแบบหลักๆ คือจำนวนเต็ม และแบบมีทศนิยม

จำนวนเต็มจะเรียกว่า **Integer** หรือ **Fixed** เช่น `0`, `112`, `-256`

เลขทศนิยมจะเรียกว่า **Float** หรือ **Double** หรือ **Decimal** เช่น `3.5`, `100.0`

การคำนวนด้วยตัวเลขจะใช้ตัว `+` แทนการบวก `-` แทนการลบ `*` แทนการคูณ และ `/` แทนการหาร&#x20;

![ทดลองรันบน irb](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR08h7ZxPtqqBRWqbyk%2Fimage.png?alt=media\&token=29060a52-4ab4-4f2e-a217-081ca0112c85)

![ทดลองรันด้วยเว็บ repl.it](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR08SONtGFoXD-aQexo%2Fimage.png?alt=media\&token=ee3cd3ad-997e-4b78-a9e5-8a10a698f4be)

ถ้ารันบน repl.it แล้วไม่เห็นบน ให้ใส่ `puts` เพื่อพิมพ์ค่าออกมาใน Console (ช่องทางขวาสีดำๆ) แต่ถ้ารันใน irb ซึ่งจะรันโค้ดเราทีละบรรทัด ไม่ต้องใส่ `puts` ก็ได้

การพิมพ์คำสั่งในการคำนวณเลข จะเว้นวรรค (Space) ระหว่างตัวเลขและสัญลักษณ์อย่างไรก็ได้ ดังภาพ (แต่ต้องเว้นวรรคกับคำสั่ง `puts` มิเช่นนั้นโปรแกรมจะทำงานผิดพลาด (Error)

![puts4+5 จะ Error เพราะเลข 4 อยู่ติดกับคำสั่ง puts](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0AO7hNx2PRebgrOSE%2Fimage.png?alt=media\&token=9420ae09-2e2f-4b7c-bfd2-7d557a69cd1d)

### ลำดับการคำนวณเลข

การคำนวณเลขจะมีมากกว่า 2 พจน์ก็ได้ แต่ลำดับการคำนวณจะมีลำดับขั้นอยู่ โดยตัวคูณและหารจะทำก่อนบวกและลบเสมอ ยกเว้นจะใช้วงเล็บ `( )` ในการกำกับ โปรแกรมจะคำนวณภายในวงเล็บก่อน

![ลองคิดตามดู ว่าได้ตรงกับที่คิดไว้หรือไม่](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0Bv55AzHFR8XcuvFD%2Fimage.png?alt=media\&token=3064305f-b5b6-4a49-a171-d9a472d6b35c)

### การหารเลขจำนวนเต็ม

สำหรับการหารในเลขจำนวนเต็มนั้น ถ้ามีเศษ **เศษจะถูกปัดทิ้งเสมอ**

![5 / 2 = 2.5 -> ปัดเศษทิ้งเหลือ 2](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0D-u2lmGE9lYuDEdp%2Fimage.png?alt=media\&token=b85553b9-c819-4a06-b185-d11d429d4d81)

### เลขทศนิยม

สำหรับเลขทศนิยมจะคำนวณได้เหมือนกับจำนวนเต็มทุกอย่าง โดยจะใช้คำนวณผสมกับจำนวนเต็มก็ได้ แต่ค่าที่ได้จะกลายเป็นทศนิยมไปด้วย

![การคำนวณกับเลขทศนิยม](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0E5iTh7U8l87FUiUq%2Fimage.png?alt=media\&token=be5056d2-7347-436c-98a5-0949f693a8ec)

### การแปลงประเภทของตัวเลข

เราสามารถแปลงจาก Integer เป็น Float หรือ Float เป็น Integer ได้ด้วยคำสั่ง `.to_f` และ `.to_i` ตามลำดับ (หากแปลงจาก Float เป็น Integer เศษทศนิยมจะถูกปัดทิ้งเช่นเดียวกับการหาร)

![ตัวอย่างการแปลงด้วย .to\_f เป็น Float และ to\_i เป็น Integer](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0FC1ypzWHrfn9RMpX%2Fimage.png?alt=media\&token=3a6e0dba-91be-4ae7-9fdc-2f4776a1ab1f)

## ชุดอักขระ

ชุดอักขระ หรือภาษาอังกฤษจะเรียกว่า String (สตริง) เป็นชุดของตัวหนังสือนั่นเอง (โดยในภาษาอื่นๆ อาจมีเป็นตัวอักระตัวเดียวหรือ Character ด้วย แต่ใน Ruby จะมีแต่ String อย่างเดียว)

วิธีสร้าง String ก็ง่ายๆ ให้ครอบคำด้วยเครื่องหมายคำพูด แบบ Single Quote `' '` หรือ Double Quote `" "` ก็ได้

![สร้าง String ด้วยการครอบด้วย ' หรือ "](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0GMyMhcFS-opcd3E4%2Fimage.png?alt=media\&token=f12d27e6-036b-40a9-a162-27b13c2986ef)

### แถม : ปั๊ม String ด้วยการคูณ

ในภาษา Ruby นั้นเราสามารถเอาตัวเลขไปคูณกับ String ได้! (แต่ต้องเอาตัวเลขไว้ด้านหลังเท่านั้นนะ)

![](https://912784263-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMMgc-z4G6riCzlCyo9%2F-MR00gJl-g3NJV5bpm9L%2F-MR0I-GbdbSmpGucp3XI%2Fimage.png?alt=media\&token=57436f59-8d3e-4dc5-ab53-04d763f68b33)

ในตอนหน้าเราจะมาเล่นกับ String กันต่อ โดยจะมีเรื่องของ Method ด้วย
