有没有更好的方法可以用两个浮点数和一个增量进行断言?

例如

let a = 3.0;
let b = 2.9999999999;
assert_eq!(a, b, 0.0001); // Imaginary syntax where a ~= b, within 0.0001

推荐答案

不.目前,你必须自己判断差异或使用float-cmp crate.

也可以看看std::f32 constants.

Rust相关问答推荐

Rust为什么应用于引用的操作符可以强制,而具有显式类型的let则不能?

将此字符串转换为由空格字符分隔的空格

如何访问Rust存储值的内存地址

在UdpSocket上使用sendto时的隐式套接字绑定

有没有办法指定只在Rust的测试中有效的断言?

如果死 struct 实现了/派生了一些特征,为什么Rust会停止检测它们?

完全匹配包含大小写的整数范围(&Q;)

如果变量本身不是None,如何返回;如果没有,则返回None&Quot;?

为什么 tokio 在以奇怪的方式调用时只运行 n 个任务中的 n-1 个?

在 Rust 中,是否可以定义一个需要实现类型的构造函数的对象安全特征?

如何在 Rust 中打印 let-else 语句中的错误?

当没有实际结果时,如何在 Rust 中强制执行错误处理?

注释闭包参数强调使用高阶排定特征界限

为什么这段 Rust 代码会在没有递归或循环的情况下导致堆栈溢出?

有没有办法隐式绑定 let/match 操作的成员?

为什么我可以同时传递可变和不可变引用?

预期的整数,找到 `&{integer}`

相交着色器从 SSBO 中读取零

在 Rust 中退出进程

返回 &str 但不是 String 时,borrow 时间比预期长