在Rust中访问基本数学函数是否需要强制转换为float?

在Rust中访问基本数学函数是否需要强制转换为float?,rust,Rust,所有与浮动之间的转换是否都是必要的?否。作为一个例子,您可以使用std::cmp::min: fn main() { let a = 1i32; let b = 2i32; let smallest = (a as f64).min((b as f64)) as i32; println!("{}", smallest); } min在f32和f64上专门声明是因为浮点类型不实现Ord。由于存在NaN,它们只有部分排序(partialorder),而std::

所有与浮动之间的转换是否都是必要的?

否。作为一个例子,您可以使用
std::cmp::min

fn main() {
    let a = 1i32;
    let b = 2i32;

    let smallest = (a as f64).min((b as f64)) as i32;
    println!("{}", smallest);
}
min
f32
f64
上专门声明是因为浮点类型不实现
Ord
。由于存在NaN,它们只有部分排序(
partialorder
),而
std::cmp::min
需要总排序(
Ord
)。

否。作为一个例子,您可以使用
std::cmp::min

fn main() {
    let a = 1i32;
    let b = 2i32;

    let smallest = (a as f64).min((b as f64)) as i32;
    println!("{}", smallest);
}

min
f32
f64
上专门声明是因为浮点类型不实现
Ord
。由于NaN的存在,它们只具有部分排序(
partialorder
),而
std::cmp::min
需要总排序(
Ord
)。

您正在寻找的函数是,它适用于实现以下功能的任何类型:


您使用的是来自的min方法(f32有一个等效方法)。

您要查找的函数是,它适用于实现以下功能的任何类型:


您使用的是来自的min方法(f32有一个等价物)。

它对于浮点是显式分开的,因为它们有NaN,并且专门处理它们。Derp,是的,我完全忘记了NaN。感谢链接到API参考搜索。我正在编写我的第一个rust程序,而Google和Dash没有得到我需要的结果。它对于float是显式分开的,因为它们有NaN,并且专门处理它们。Derp,是的,我完全忘记了NaN。感谢链接到API参考搜索。我正在编写我的第一个rust程序,而Google和Dash并没有得到我需要的结果。
fn main() {
    let a = 1i32;
    let b = 2i32;

    let smallest = ::std::cmp::min(a, b);
    println!("{}", smallest);
}