当前位置: 首页 > news >正文

陵水网站建设报价做网站备案是承诺书是啥

陵水网站建设报价,做网站备案是承诺书是啥,权威的大连网站建设,app编程缘由:在看Rust编写的代码,发现了一行浮点数等于比较的代码,于是编辑如下内容。 在Rust中,进行浮点数比较时需要特别小心,因为浮点数由于精度限制无法精确表示小数,可能会导致直接比较(如 &…

在这里插入图片描述

缘由:在看Rust编写的代码,发现了一行浮点数等于比较的代码,于是编辑如下内容。

在Rust中,进行浮点数比较时需要特别小心,因为浮点数由于精度限制无法精确表示小数,可能会导致直接比较(如 ==)的结果不符合预期。这里是一些注意事项和常见的解决方案:

1. 避免直接使用 ==!= 比较

浮点数运算中的精度误差,可能导致直接比较不准确。例如:

let a = 0.1 + 0.2;
let b = 0.3;
println!("{}", a == b); // 输出: false

虽然理论上 ab 应该相等,但计算误差会让它们的值稍有不同。因此,避免使用 ==!= 直接比较浮点数。

2. 使用允许误差(误差容限)进行比较

通常,在比较浮点数时引入一个允许的误差范围(即误差容限)。例如,如果两个浮点数的差异在某个很小的范围内,就可以认为它们相等。

fn approx_equal(a: f64, b: f64, epsilon: f64) -> bool {(a - b).abs() < epsilon
}fn main() {let a = 0.1 + 0.2;let b = 0.3;println!("{}", approx_equal(a, b, 1e-10)); // 输出: true
}

这里 epsilon 是误差容限,根据实际情况选择合适的值,比如 1e-10 或更小的值。

3. 使用 f64::EPSILONf32::EPSILON

Rust 提供了 f64::EPSILONf32::EPSILON,表示浮点数计算中能表示的最小差值。通常 EPSILON 可以作为误差容限的基础,不过更常见的是在其基础上进行放大:

fn approx_equal(a: f64, b: f64) -> bool {(a - b).abs() < f64::EPSILON * 10.0 // 放大 epsilon 以确保误差范围足够
}

4. 使用内置的 f64::total_cmp

如果需要对浮点数进行排序,可以使用 total_cmp 方法。这个方法会考虑特殊的浮点数情况,比如 NaN-0.0,避免精度误差对排序结果的影响:

fn main() {let mut values = vec![0.1 + 0.2, 0.3];values.sort_by(|a, b| a.total_cmp(b));println!("{:?}", values);
}

5. 尽量避免不必要的浮点计算

尽量避免将多个浮点计算组合在一起,特别是涉及较小或较大的数。浮点数计算误差是累积的,因此计算越复杂,误差越明显。

6. 避免与 NaN 进行比较

任何浮点数与 NaN(非数)进行比较都会返回 false。如果可能存在 NaN 值,应提前检查和处理。

let x = f64::NAN;
if x.is_nan() {println!("x is NaN");
}

总结

浮点数的精度误差是比较时的一大挑战。在 Rust 中进行浮点数比较时,应尽量避免直接比较,使用误差容限或 total_cmp 方法。

http://www.yayakq.cn/news/501662/

相关文章:

  • 美妆网站模版长沙网络营销师最新招聘信息
  • 设计的有趣的网站如何攻克网站
  • 上海市网站建设公司中国建设银行招聘官网站
  • 八年级信技做网站网站建设如何存数据
  • 镇江百度网站建设门户网站建设分工的通知
  • 电脑网站和手机网站的区别美橙专业建站
  • 个人手机网站大全城乡住房建设部官网查询
  • 建设部注册中心网站广州 创意的网站设计
  • 徐州市网站建设做网站怎么加背景图片
  • 微信盲盒小程序搭建长沙seo报价
  • 网站建设结构表合肥网站seo技术
  • 网页出现网站维护苏州市姑苏区建设局网站
  • 海南建设官方信息网站vs2015是网站开发
  • 企业建设电子商务网站的预期收益深圳网页开发
  • 单页销售网站源码网站其它方面seo情况
  • 专业企业网站建设公司承德房地产网站建设
  • 私人服装定制网站德阳市网站建设
  • 三网合一网站建设是指什么云商城的网站建设
  • 个人网站建设规划实践报告大连sem网站建设
  • 网站wordpress是什么意思制作企业网站用什么软件
  • 网和网站的区别青岛seo杭州厂商
  • 域名是干嘛的seo网站优化方案摘要
  • drupal网站开发做的网站怎样更新
  • 动易的网站能否静态做网站宝安
  • 东北网站建设网站建设哪家服务周到
  • asp做的网站如何发布wordpress页面文件夹
  • 网站logo代码郑州红酒网站建设
  • 网站左下角留言板html东莞最近有什么新闻
  • 做网站的是干嘛的获取网站缩略图的asp代码
  • 科技网站建设 开题报告软件技术专升本需要考些什么科目