(MATLAB) มีปัญหาเรื่อง 'str2num' VS 'str2double'

เราเขียนโปรแกรมเอาไว้รับค่าผ่าน GUI ค่ะ โดยค่าที่รับเป็นอุณหภูมิ
บางครั้งอ่านได้แบบ เป็นจำนวณเต็ม บางครั้งเป็นทศนิยม 1 ตำแหน่ง (แบบบางทีอ่านค่าได้ 28 หรือ 28.7 อะไรแบบเนี้ย)
เราเลยใช้วิธีแบบ play safe เอาไว้ก่อน โดยใช้แบบรับค่ามาเป็น str2num ทั้งหมด ซึ่งมันก็จะช้าๆนิดนึงเวลาเรียกเปิดขึ้นมาใหม่
แต่มีปัญหาตรงที่ว่า จะมีค่าInput ตัวนึง แบบนี้ค่ะ

รับค่าแบบ 'str2num' >> ใส่เป็นเลขจำนวนเต็ม ไม่มีทศนิยม >> error >> เปลี่ยนเป็น 'str2double' กดเซฟ>> รันได้ คอมไพล์ผ่าน
ทีนี้พอเราปิดโปรแกรมแล้วลองเปิดใหม่
กลายเป็นรับค่าแบบ 'str2double' >> ใส่เป็นเลขจำนวนเต็ม ไม่มีทศนิยม >> error >> เปลี่ยนกลับเป็น 'str2num' กดเซฟ >> รันได้ คอมไพล์ผ่าน

พอปิดโปรแกรมเปิดใหม่ก็เข้า loop เดิมอีก
ตอนนี้ใช้วิธีสั่งรับค่าแบบ 'str2num' อยู่ แต่ใช้วิธี ถ้าเป็นจำนวนเต็ม เวลาinput ค่า เราจะ input แบบทศนิยม 1 ตำแหน่งซึ่งก็ได้ผลว่ามันไม่ error ละค่ะ
แต่อยากหาวิธีที่ทำให้สามารถรับค่าได้แบบไม่ต้องใส่ทศนิยมยังไงดี
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่