การปัดเศษของตัวเลข

Bash:
การปัดเศษของตัวเลข

วิธีการ:

นี่คือข้อมูลพื้นฐานเกี่ยวกับการปัดเศษใน Bash:

# ปัดลงโดยใช้ 'floor' กับ bc
echo "scale=0; 3.49/1" | bc

# ปัดขึ้นโดยใช้ 'ceiling' กับ bc
echo "scale=0; 3.01/1" | bc -l

# ปัดเศษเป็นจำนวนเต็มโดยใช้ printf
printf "%.0f\n" 3.49

# วิธีการปัดเศษเป็นจำนวนเต็มโดยใช้ bc
echo "(3.49+0.5)/1" | bc

ผลลัพธ์ตัวอย่าง—ตรงมาจากปากของเทอร์มินัล:

3  # ปัดลง (floor)
4  # ปัดขึ้น (ceiling)
3  # ปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (ด้วย printf)
3  # ปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (ด้วย bc)

ดำดิ่งลึก

ในยุคก่อน ไม่มี bc หรือ printf ในสคริปต์ Bash เพื่อทำเวทมนตร์ด้านคณิตศาสตร์ คนโบราณต้องพึ่งพาเครื่องมือภายนอกหรือวิธีแก้ปัญหาที่ฉลาด. ตอนนี้ bc ช่วยให้คุณทำคณิตศาสตร์แบบเที่ยงตรงได้ ควรทราบว่า bc ไม่ได้ปัดเศษโดยค่าเริ่มต้น—มันจะปัดลง ส่วน scale จะตั้งค่าการกระทำของจุดทศนิยม

ทางเลือกอื่น? คุณอาจใช้ awk สำหรับการปัดเศษโดยไม่ต้องเปลี่ยนไปใช้ bc หรือใช้ perl สำหรับความต้องการคณิตศาสตร์ที่หนักกว่า สำหรับผู้ที่ชอบความท้าทาย ลองใช้ Bash แบบบริสุทธิ์ เช่น การจัดการสตริงแบบวนซ้ำ - แต่ทำไมล่ะ?

เกี่ยวกับรายละเอียด bc ไม่เพียงแค่ปัดเศษเท่านั้น มันทำคณิตศาสตร์ได้มากมาย—ปรับขนาด หาไซน์ คำนวณรากที่สอง คุณตั้งชื่อมันได้ ด้วย printf มันเกี่ยวกับการจัดรูปแบบข้อความมากกว่า แต่เฮ้ มันปัดเศษตัวเลข ดังนั้นเราจึงไม่บ่น

ดูเพิ่มเติม

สำหรับผู้ที่กระหายความรู้เพิ่มเติม: