当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust f32.total_cmp用法及代码示例


本文简要介绍rust语言中 f32.total_cmp 的用法。

用法

pub fn total_cmp(&self, other: &f32) -> Ordering

返回 self 和其他值之间的排序。与浮点数之间的标准部分比较不同,此比较始终根据 IEEE 754(2008 修订版)浮点标准中定义的 totalOrder 谓词生成排序。这些值按以下顺序排序:

  • 负面安静NaN
  • 负面信号NaN
  • 负无穷大
  • 负数
  • 负次正规数
  • 负零
  • 正零
  • 正次正规数
  • 正数
  • 正无穷大
  • 积极信号NaN
  • 积极安静NaN

请注意,此函数并不总是与 f32 PartialOrd PartialEq 实现一致。特别是,它们将负零和正零视为相等,而total_cmp 则不然。

示例

#![feature(total_cmp)]
struct GoodBoy {
    name: String,
    weight: f32,
}

let mut bois = vec![
    GoodBoy { name: "Pucci".to_owned(), weight: 0.1 },
    GoodBoy { name: "Woofer".to_owned(), weight: 99.0 },
    GoodBoy { name: "Yapper".to_owned(), weight: 10.0 },
    GoodBoy { name: "Chonk".to_owned(), weight: f32::INFINITY },
    GoodBoy { name: "Abs. Unit".to_owned(), weight: f32::NAN },
    GoodBoy { name: "Floaty".to_owned(), weight: -5.0 },
];

bois.sort_by(|a, b| a.weight.total_cmp(&b.weight));

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 f32.total_cmp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。