1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年3月2日 |
---|
在#比较中排名第51
每月下载量695,958
在143个crate中使用了(通过jsonschema)
43KB
892 行
num-cmp
NumCmp
是一个用于不同类型数值之间比较的trait。
use std::f32;
use std::cmp::Ordering;
use num_cmp::NumCmp;
assert!(NumCmp::num_eq(3u64, 3.0f32));
assert!(NumCmp::num_lt(-4.7f64, -4i8));
assert!(!NumCmp::num_ge(-3i8, 1u16));
// 40_000_000 can be exactly represented in f32, 40_000_001 cannot
assert_eq!(NumCmp::num_cmp(40_000_000.0f32, 40_000_000u32), Some(Ordering::Equal));
assert_ne!(NumCmp::num_cmp(40_000_001.0f32, 40_000_001u32), Some(Ordering::Equal));
assert_eq!(NumCmp::num_cmp(f32::NAN, 40_000_002u32), None);
可以在nightly模式下启用i128
Cargo功能以获得对i128
和u128
类型的支持,这正在Rust问题#35118中实现。
lib.rs
:
NumCmp
是一个用于不同类型数值之间比较的trait。
use std::f32;
use std::cmp::Ordering;
use num_cmp::NumCmp;
assert!(NumCmp::num_eq(3u64, 3.0f32));
assert!(NumCmp::num_lt(-4.7f64, -4i8));
assert!(!NumCmp::num_ge(-3i8, 1u16));
// 40_000_000 can be exactly represented in f32, 40_000_001 cannot
assert_eq!(NumCmp::num_cmp(40_000_000.0f32, 40_000_000u32), Some(Ordering::Equal));
assert_ne!(NumCmp::num_cmp(40_000_001.0f32, 40_000_001u32), Some(Ordering::Equal));
assert_eq!(NumCmp::num_cmp(f32::NAN, 40_000_002u32), None);
可以在nightly模式下启用i128
Cargo功能以获得对i128
和u128
类型的支持,这正在Rust问题#35118中实现。