ภาษา C โค้ดใส่ comma ทำไมใส่แล้วเลขเพี้ยนครับ

โค้ดในสปอยเลยครับ (มือใหม่หัดตั้งกระทู้)
เวลาใส่เลขมากๆ แล้ว run ก็ปกติครับ แต่พอเศษส่วนเพิ่มนิดหน่อยก็เพี้ยนแล้ว
หรือ ตัวเลขปกติพอใส่ค่ามากๆ ก็แสดงค่าเพี้ยนครับ พอมีแนวทาง หรือวิธีการแก้ไขมั้ยครับ T T (จนปัญญา orz )
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
1.  iterate ใช้ for ตามค่าหลักในส่วนที่เป็นจำนวนเต็ม
ตัวอย่าง
100000  มีค่าหลัก = 6
1000000  มีค่าหลัก = 7

หลักซ้ายสุด (6 และ 7 ตามลำดับในตัวอย่าง)  เรา  "หลับหูหลับตา"  พิมพ์หลักนี้โดยไม่สนใจคอมม่าได้เลยจริงมั้ยครับ
หลักที่เหลือมาทางขวาทั้งหมด (ก่อน decimal point)  ถ้าค่าหลักหารสามลงตัว   พิมพ์ , ก่อนพิมพ์ค่าในหลัก

จากนั้นพิมพ์จากตำแหน่งของ . รวมถึงที่เหลือทั้งหมดต่อไปตรง ๆ ได้เลย

2.  คุณสามารถ iterate for บนค่าที่เคลื่อนไหวมากกว่า 1 ค่าได้นะครับ
int a = x;
int b = y;
for ( ; a > 0; --a, ++b) {
  ...
}

3. เปลี่ยน prinf %c เป็น putchar(',') , putchar(num[index])

เห็นจขกท.
-  หา index ชอง decimal point ได้แล้ว
-  หาค่าหลักในส่วนของจำนวนเต็มก็ได้แล้ว
ยังไงลองเขียนใหม่ดู   ต่อจุดนั้นแหละครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่