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

浮点数截断法:四舍五入的精确模拟

理论解释:

1. 目标

假设 a = 3.14159,我们想四舍五入到 小数点后两位(即 3.143.15)。

2. 步骤拆解

     (1) a * 100

  • a 放大 100 倍,让小数点后两位变成整数部分:
  • 3.14159 * 100 = 314.159

    (2) + 0.5

  • 关键步骤:如果小数部分 ≥ 0.5,则整数部分 +1
  • 314.159 + 0.5 = 314.659
  • 如果原数是 3.146(即 314.6),则:

  • 314.6 + 0.5 = 315.1

    (3) (int) 强制截断

  • 强制转换为 int丢弃小数部分(不是四舍五入,而是直接截断):
  • (int)314.659 = 314
    (int)315.1 = 315

    这样:

  • 314.159 → 314(因为 0.659 < 1,相当于 3.14159 舍去)
  • 314.6 → 315(因为 0.1 < 1,但整数部分已经是 315,相当于 3.146 进位)

     (4) / 100.0

  • 最后缩小 100 倍,恢复原来的数量级:
  • ​314 / 100.0 = 3.14
    315 / 100.0 = 3.15

    3. 为什么能保证精确?

  • 浮点数存储可能不精确(如 3.145 可能存储为 3.144999999...),直接用 %.2f 可能会错误舍入。
  • (int)(x + 0.5) 是经典的“四舍五入”方法,不依赖浮点数的内部表示,而是利用整数截断特性,确保:
  • 小数部分 ≥ 0.5 → 进位
  • 小数部分 < 0.5 → 舍去

例题:

代码如下:

错误示例

(1)

(2)

(3)

正确代码:

相关文章:

浮点数截断法:四舍五入的精确模拟

理论解释&#xff1a; 1. 目标 假设 a 3.14159&#xff0c;我们想四舍五入到 小数点后两位&#xff08;即 3.14 或 3.15&#xff09;。 2. 步骤拆解 (1) a * 100 把 a 放大 100 倍&#xff0c;让小数点后两位变成整数部分&#xff1a; 3.14159 * 100 314.159 (2) 0.5 关…...

技术文章:解决汇川MD500系列变频器干扰问题——GRJ9000S EMC滤波器的应用

1. 引言 汇川MD500系列变频器&#xff08;Variable Frequency Drive, VFD&#xff09;以其高性能、宽功率范围&#xff08;0.4kW-500kW&#xff09;和灵活的控制方式&#xff0c;广泛应用于工业自动化领域&#xff0c;如风机、水泵、传送带和压缩机等。然而&#xff0c;MD500系…...

大模型数据分析破局之路20250512

大模型数据分析破局之路 本文面向 AI 初学者、数据分析从业者与企业技术负责人&#xff0c;围绕大模型如何为数据分析带来范式转变展开&#xff0c;从传统数据分析困境谈起&#xff0c;延伸到 LLM MCP 的协同突破&#xff0c;最终落脚在企业实践建议。 &#x1f30d; 开篇导语…...

基于javaweb的SSM驾校管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Java内存泄露生产环境排查过程,通透了

昨天线上环境崩了 java堆内存溢出。。。 报错&#xff1a;java.lang.OutOfMemoryError: Java heap space 下面我将我排查问题的思路和过程记录了下来 1. 场景 客户端跟Java服务端通过websocket连接建立长链接并发送语音数据&#xff08;text格式&#xff09;Java服务端跟听…...

NHANES指标推荐:MDS

文章题目&#xff1a;The association between magnesium depletion score (MDS) and overactive bladder (OAB) among the U.S. population DOI&#xff1a;10.1186/s41043-025-00846-x 中文标题&#xff1a;美国人群镁耗竭评分 &#xff08;MDS&#xff09; 与膀胱过度活动症…...

以项目的方式学QT开发C++(二)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!

API 描述 函数原型 参数说明 push_back() 在 list 尾部 添加一个元素 void push_back(const T& value); value &#xff1a;要添 加到尾部的元 素 这个示例演示了如何创建 std::list 容器&#xff0c;并对其进行插入、删除和迭代操作。在实际应用中&am…...

Docker使用经验-从Image导出dockerfile并进行修改

好久没进行记录写作了&#xff0c;还是得进行下去 0 前言 项目上拉下来的docker-image在我自己电脑上创建的容器不能正常启动&#xff0c;创建者在容器里面添加的了用户&#xff0c;容器启动后会进入该用户 1 docker导出dockerfile dfimage是一个用于从Docker镜像生成Docker…...

【HTML5学习笔记1】html标签(上)

web标准&#xff08;重点&#xff09; w3c 构成&#xff1a;结构、表现、行为&#xff0c;结构样式行为相分离 结构&#xff1a;网页元素整理分类 html 表现&#xff1a;外观css 行为&#xff1a;交互 javascript html标签 1.html语法规范 1&#xff09; 所有标签都在…...

计算机视觉---目标检测(Object Detecting)概览

一、目标检测定义与核心任务 1. 定义 任务&#xff1a;在图像/视频中定位并分类所有感兴趣目标&#xff0c;输出边界框&#xff08;Bounding Box&#xff09;和类别标签。核心输出&#xff1a; 坐标&#xff1a;((x_1, y_1, x_2, y_2))&#xff08;左上角右下角&#xff09;或…...

在vue3中使用Cesium的保姆教程

1. 软件下载与安装 1. node安装 Vue.js 的开发依赖于 Node.js 环境&#xff0c;因此我们首先需要安装 Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它允许你在服务器端运行 JavaScript 代码&#xff0c;同时也为前端开发提供了强大的工具支…...

IP地址、端口、TCP介绍、socket介绍、程序中socket管理

1、IP地址&#xff1a;IP 地址就是 标识网络中设备的一个地址&#xff0c;好比现实生活中的家庭地址。IP 地址的作用是 标识网络中唯一的一台设备的&#xff0c;也就是说通过IP地址能够找到网络中某台设备。 2、端口&#xff1a;代表不同的进程,如下图&#xff1a; 3、socket:…...

基于MCP的桥梁设计规范智能解析与校审系统构建实践

引言 在腾讯云开发者社区中&#xff0c;有多种MCP工具可以用于本系统的开发和优化中&#xff0c;以下是一些潜在的应用场景&#xff1a; ‌PDF解析工具‌&#xff1a;如pdfplumber等&#xff0c;可以用于规范文件的预处理&#xff0c;提取文本和图像信息。‌自然语言处理工具…...

搭建运行若依微服务版本ruoyi-cloud最新教程

搭建运行若依微服务版本ruoyi-cloud 一、环境准备 JDK > 1.8MySQL > 5.7Maven > 3.0Node > 12Redis > 3 二、后端 2.1数据库准备 在navicat上创建数据库ry-seata、ry-config、ry-cloud运行SQL文件ry_20250425.sql、ry_config_20250224.sql、ry_seata_2021012…...

OM和SCADA的区别

在工业与能源领域&#xff0c;O&M&#xff08;Operation and Maintenance&#xff0c;运维&#xff09; 和 SCADA&#xff08;Supervisory Control And Data Acquisition&#xff0c;监控与数据采集系统&#xff09; 是两类截然不同的概念&#xff0c;前者是 人员与流程驱动…...

CentOS7 grub配置文件介绍

1. grub2-editenv list saved_entryCentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 这个命令查询出当前启动的内核版本。 2.grep ^menu /boot/grub2/grub.cfg menuentry CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) --class centos --class gnu-linux --class gnu --c…...

SpringBoot常用注解详解

文章目录 1. 前言2. 核心注解2.1 SpringBootApplication2.2 Configuration2.3 EnableAutoConfiguration2.4 ComponentScan2.5 Bean2.6 Autowired2.7 Qualifier2.8 Primary2.9 Value2.10 PropertySource2.11 ConfigurationProperties2.12 Profile 3. Web开发相关注解3.1 Control…...

Python字符串常用内置函数详解

文章目录 Python字符串常用内置函数详解一、基础字符串函数1. len() - 获取字符串长度2. ord() - 获取字符的Unicode码点3. chr() - 通过Unicode码点获取字符4. ascii() - 获取字符的ASCII表示 二、类型转换函数1. str() - 将对象转为字符串2. repr() - 获取对象的官方字符串表…...

MyBatis 批量新增与删除功能完整教程

一、功能概述 通过 MyBatis 动态 SQL 实现以下功能: 批量新增:一次性插入多条员工记录,支持自增主键回填。批量删除:根据 ID 数组一次性删除多条记录。二、代码逐行解析 1. Mapper 接口定义 // 批量新增:传入员工对象集合 void insertAll(List<Emp> empList);// …...

HTML常用标签用法全解析:构建语义化网页的核心指南

HTML作为网页开发的基石&#xff0c;其标签的合理使用直接影响页面的可读性、SEO效果及维护性。本文系统梳理HTML核心标签的用法&#xff0c;结合语义化设计原则与实战示例&#xff0c;助你构建规范、高效的网页结构。 一、基础结构与排版标签 1.1 文档结构 <!DOCTYPE htm…...

大数据架构选型全景指南:核心架构对比与实战案例 解析

目录 大数据架构选型全景指南&#xff1a;核心架构对比与实战案例解析1. 主流架构全景概览1.1 核心架构类型1.2 关键选型维度 2. 架构对比与选型矩阵2.1 主流架构对比表2.2 选型决策树 3. 案例分析与实现案例1&#xff1a;电商实时推荐系统&#xff08;Lambda架构&#xff09;案…...

FPGA: XILINX Kintex 7系列器件的架构

本文将详细介绍Kintex-7系列FPGA器件的架构。以下内容将涵盖Kintex-7的核心架构特性、主要组成部分以及关键技术&#xff0c;尽量全面且结构化&#xff0c;同时用简洁的语言确保清晰易懂。 Kintex-7系列FPGA架构概述 Kintex-7是Xilinx 7系列FPGA中的中高端产品线&#xff0c;基…...

RK3568-鸿蒙5.1与原生固件-扇区对比分析

编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息&#xff0c;分析RK3568开发板固件的各个组件及其用途&#xff1a; 主要固件组件 根据终端输出的文件列表&#xff0c;RK3568固件包含以下关键组件&#x…...

常见激活函数——作用、意义、特点及实现

文章目录 激活函数的意义常见激活函数及其特点1. Sigmoid&#xff08;Logistic 函数、S型函数&#xff09;2. Tanh&#xff08;双曲正切函数&#xff09;3. ReLU&#xff08;Rectified Linear Unit修正线性单元&#xff09;4. Softmax5. Swish&#xff08;Google 提出&#xff…...

Spring模拟转账开发

完成转账代码的编写 service public class AccountServiceImpl implements AccountService {Autowiredprivate AccountDao accountDao;public void setAccountDao(AccountDao accountDao) {this.accountDao accountDao;}public void pay(String out, String in, Double money)…...

基于微信小程序的在线聊天功能实现:WebSocket通信实战

基于微信小程序的在线聊天功能实现&#xff1a;WebSocket通信实战 摘要 本文将详细介绍如何使用微信小程序结合WebSocket协议开发一个实时在线聊天功能。通过完整的代码示例和分步解析&#xff0c;涵盖界面布局、WebSocket连接管理、消息交互逻辑及服务端实现&#xff0c;适合…...

小波变换+注意力机制成为nature收割机

小波变换作为一种新兴的信号分析工具&#xff0c;能够高效地提取信号的局部特征&#xff0c;为复杂数据的处理提供了有力支持。然而&#xff0c;它在捕捉数据中最为关键的部分时仍存在局限性。为了弥补这一不足&#xff0c;我们引入了注意力机制&#xff0c;借助其能够强化关注…...

【无标题】威灏光电哲讯科技MES项目启动会圆满举行

5月14日&#xff0c;威灏光电与哲讯科技MES项目启动会在威灏光电总部隆重举行。威灏光电董事长江轮、总经理刘明星、哲讯科技总经理崔新华、副总王子文及双方项目组成员共同出席&#xff0c;标志着两家企业在数字化领域的第二次深度合作正式启航。 强强联手&#xff0c;二度合作…...

腾讯云存储原理

我们来详细展开你提到的两个核心结构概念&#xff1a; 一、“基于分布式文件系统 对象存储技术” 是什么&#xff1f; 1. 分布式文件系统&#xff08;DFS&#xff09;基础 分布式文件系统是一种支持将数据分布在多个存储节点上、并对上层用户透明的文件系统。腾讯云COS虽然是…...

display:grid网格布局属性说明

网格父级 &#xff1a;display:grid&#xff08;块级网格&#xff09;/ inline-grid&#xff08;行内网格&#xff09; 注意&#xff1a;当设置网格布局&#xff0c;column、float、clear、vertical-align的属性是无效的。 HTML: <ul class"ls02 f18 mt50 sysmt30&…...