Skip to content
เข้าสู่ระบบ

Num Enums

Enums สำหรับ numeric operations

use std::num::FpCategory;
fn classify(x: f64) -> &'static str {
match x.classify() {
FpCategory::Nan => "NaN (Not a Number)",
FpCategory::Infinite => "Infinite",
FpCategory::Zero => "Zero",
FpCategory::Subnormal => "Subnormal (denormalized)",
FpCategory::Normal => "Normal",
}
}
fn main() {
let values = [
0.0_f64,
-0.0,
1.0,
f64::INFINITY,
f64::NEG_INFINITY,
f64::NAN,
f64::MIN_POSITIVE,
f64::MIN_POSITIVE / 2.0, // Subnormal
];
for v in values {
println!("{:>20} -> {}", format!("{:?}", v), classify(v));
}
// Check methods
let x = 42.0_f64;
println!("\n42.0:");
println!(" is_nan: {}", x.is_nan());
println!(" is_infinite: {}", x.is_infinite());
println!(" is_finite: {}", x.is_finite());
println!(" is_normal: {}", x.is_normal());
println!(" is_subnormal: {}", x.is_subnormal());
println!(" is_sign_positive: {}", x.is_sign_positive());
println!(" is_sign_negative: {}", x.is_sign_negative());
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด