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

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

วิธีการ:

Rust ทำให้การปัดเศษตัวเลขเป็นเรื่องง่าย ลองดูเมธอดเหล่านี้สำหรับประเภท f32 หรือ f64:

fn main() {
    let num = 2.34567;

    // ปัดเศษไปยังเลขเต็มที่ใกล้ที่สุด
    let round = num.round();
    println!("ปัดเศษ: {}", round); // ปัดเศษ: 2

    // พื้น - เลขเต็มที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับเลข
    let floor = num.floor();
    println!("พื้น: {}", floor); // พื้น: 2

    // เพดาน - เลขเต็มที่น้อยที่สุดที่มากกว่าหรือเท่ากับเลข
    let ceil = num.ceil();
    println!("เพดาน: {}", ceil); // เพดาน: 3

    // ตัดเศษ - ส่วนเต็มโดยไม่มีเศษส่วน
    let trunc = num.trunc();
    println!("ตัดเศษ: {}", trunc); // ตัดเศษ: 2

    // ไปยังหลายเท่าของเลขยกกำลังสิบ
    let multiple_of_ten = (num * 100.0).round() / 100.0;
    println!("ปัดเศษไปยังทศนิยม 2 ตำแหน่ง: {}", multiple_of_ten); // ปัดเศษไปยังทศนิยม 2 ตำแหน่ง: 2.35
}

ลึกซึ้ง

ในอดีต การปัดเศษมีความสำคัญมากในการจำลองตัวเลขทศนิยมอนันต์หรือตัวเลขอตรรกยะในพื้นที่ดิจิทัลที่จำกัด – เป็นสิ่งจำเป็นสำหรับคอมพิวเตอร์โบราณที่มีหน่วยความจำน้อย นึกถึงอะบาคัสแต่ลดความครีเอทีฟลงและเพิ่มคณิตศาสตร์มากขึ้น

ทางเลือกที่ไม่ใช่เมธอดเนทีฟของ Rust รวมถึง:

  1. มาโคร format! สำหรับการจัดรูปแบบสตริงที่ปัดเศษตามค่าเริ่มต้น
  2. ครีตภายนอกสำหรับงานคณิตศาสตร์เฉพาะทาง เช่น ครีต round ที่มีการควบคุมที่ละเอียดขึ้น

ใต้ฝาครอบ การดำเนินการปัดเศษของ Rust ปฏิบัติตามมาตรฐาน IEEE – ศัพท์เทคนิคที่ว่า “มันปัดเศษเหมือนอาจารย์สอนคณิตศาสตร์ของคุณต้องการ” นอกจากนี้ ด้วยเหตุผลของการแสดงผลเป็นเลขฐานสอง บางตัวเลขไม่สามารถปัดเศษได้ตามปกติ เช่น 0.1 ที่มีการแสดงผลเป็นอนันต์ในรูปแบบเลขฐานสอง

ดูเพิ่มเติม