math.round和math.floor相互转化

Math.Round()函数说明 Math.Round()并不是严格意义上的是四舍五入函数。它默认的执行的是“银行家舍入”算法,即四舍六入五取偶。概括为:四舍六入五考虑、五后非零就进一,五后皆零看奇偶,五前为偶应舍去、五前为奇要进一。 阅读详情

在Python中,math.round() 函数用于对浮点数进行四舍五入到最接近的整数,而 math.floor() 函数则是直接取浮点数的整数部分,即向下取整。如果你需要在 math.round() 和 math.floor() 之间进行某种“相互转化”,实际上,你需要理解这两种函数各自的行为,并根据具体情况来调整逻辑。

从 math.round() 到 math.floor()

由于 math.round() 是根据浮点数的值四舍五入到最接近的整数,而 math.floor() 是直接取整(向下取整),因此,从 math.round() 转换到 math.floor() 的逻辑不是直接“转化”,而是理解并调整结果。

如果你有一个 math.round() 的结果,并且想要得到 math.floor() 的效果,你可能需要:

直接调用:如果原始浮点数本身就是非负的,且小数部分小于0.5,那么 math.round() 的结果直接等同于 math.floor() 的结果。如果不是这样,你不能直接“转化”,但你可以通过逻辑判断来实现类似的效果。

逻辑判断:如果 math.round() 的结果大于原始浮点数,并且你想要向下取整,你可以直接调用 math.floor()。然而,在大多数情况下,你可能不需要这样的转换,因为 math.round() 已经做了它的工作。

从 math.floor() 到 math.round()

由于 math.floor() 总是向下取整,而 math.round() 是根据浮点数的小数部分来决定是否进位的,因此,从 math.floor() 到 math.round() 的“转化”实际上需要你对小数部分进行判断。

然而,这种“转化”在逻辑上并不总是直接或必要的。但如果你确实需要模拟 math.round() 的行为,你可以:

直接调用:如果原始浮点数的小数部分小于0.5,那么 math.floor() 的结果和 math.round() 的结果相同。

条件判断:如果小数部分大于等于0.5,你可能需要手动增加整数部分,但这并不总是容易或必要的,因为 math.round() 已经处理了这种情况。

示例

如果你确实需要在某些情况下模拟 math.round() 的行为(基于 math.floor() 的结果),你可能需要写一些条件逻辑来手动处理。但请注意,这通常不是必要的,因为 math.round() 和 math.floor() 设计用于不同的目的。

python

import math

def custom_round(x):

    # 使用math.floor()模拟math.round()的行为

    if x >= 0:

        return math.floor(x + 0.5) if (x % 1) >= 0.5 else math.floor(x)

    else:

        return math.ceil(x - 0.5) if (x % 1) <= -0.5 else math.ceil(x) # 注意:这里使用了math.ceil()来处理负数

# 注意:上面的custom_round函数对于负数并不完美模拟math.round(),因为它没有考虑到Python的round()函数对于"banker's rounding"的处理

# 使用示例

print(math.round(3.7)) # 输出 4

print(custom_round(3.7)) # 输出 4,但注意这个函数对负数的处理可能不符合期望

请注意,上面的 custom_round 函数对于负数的处理并不完美,因为它没有实现Python内置的 round() 函数对负数采取的“银行家舍入”(banker's rounding)逻辑。在实际应用中,如果你需要精确的舍入行为,最好直接使用 round() 函数,因为它已经为你处理了这些情况。

 

【信息科学与工程学】【控制科学】第二篇 决策控制与决策科学01 多属性决策分析马尔可夫决策过程和行为决策理论。多属性决策分析:静态、多准则决策问题的结构化方法马尔可夫决策过程:动态、序贯决策的数学框架行为决策理论:描述实际决策行为的心理学基础每个表格都严格遵循要求的18个维度理论基础(定理/规律/数学特征)算法实现核心数学描述关键参数精度与误差分析边界条件影响因素计量方法多学科关联实现目标完整工作流程应用场景优点与局限瓶颈知识连接点决策控制知识体系的特点多层次:从描述性(行为理论)到规范性(MCDA、MDP)多学科。 阅读详情

相关推荐

告别玄学调参:手把手教你用LSTM-AutoEncoder为传感器数据做异常检测(实战篇)

本文详细介绍了LSTM-AutoEncoder在传感器数据异常检测中的工程化实践,包括数据预处理、模型架构设计和生产环境部署策略。通过结合LSTM的时间序列处理能力和AutoEncoder的特征提取优势,该方法能够有效识别温湿度、PM2.5等传感器数据的异常模式,适用于工业物联网和室内空气质量监测等场景。

weixin_29212429的博客 477

Math.round()方法

Math.round()方法即为我们常说的“四舍五入”方法,但用起来不注意的话就会犯错。 注意Math.round(-1.5),也就是-1.5“四舍五入”的结果并不是-2,而是-1。 这是为什么呢?

本人整理的笔记与总结,涉及Android,Java,React,设计模式,算法等,愿对大家有帮助 9万+

双极性步进电机驱动技术:从H桥电路到精准控制

本文深入解析了双极性步进电机驱动技术的核心,从H桥电路的基础原理讲起,阐述了其作为实现电机正反转和精准控制的关键。文章详细介绍了H桥的工作模式、防共态导通设计,并对比了L298N、DRV8825及TMC2209等主流集成驱动芯片的选型。进一步探讨了通过微步进与电流矢量控制实现平滑、静音运行的高级技术,并提供了基于STM32的实战代码与避坑指南,帮助开发者从理论到实践全面掌握精准运动控制。

tea88的博客 593

Java中Math.round()的用法

一句话结论:将括号内的数 + 0.5 向下取整即为输出。

qq_53130059的博客 1万+

DisplayPort信号通道深度解析:从物理层到协议栈

DisplayPort(DP)是一种面向高速串行通信的数字显示接口标准,其核心在于嵌入式时钟、自适应均衡与链路训练三位一体的物理层架构。不同于HDMI依赖独立时钟的TMDS方案,DP通过差分主链路(Main Link)承载编码数据流,以8b/10b或128b/132b编码实现高带宽与强鲁棒性。该技术价值体现在多速率自适应、误码恢复能力及对PCB布线与阻抗控制的严苛要求,广泛应用于8K显示、工业视觉、GPU直连等高性能场景。本文聚焦DP信号通道的管脚级实现、三层协议解耦(物理层/数据链路层/事务层)及链路训练

weixin_34214500的博客 253

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5075

python中Math.round(),Math.ceil(),Math.floor()

Math.round()四舍五入 Math.ceil()向上取整 Math.floot()向下取整

weixin_42187536的博客 1902

从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析

本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。

weixin_29209805的博客 504

python:round()函数的舍入问题

一、round舍入 在python2.7的doc中,round()的最后写着,“Values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done away from 0.” 保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。所以round(0.5)会近似到1,而round(-0.

demo_yo的博客 3692

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 617

YOLOv11训练:Roboflow免费数据集获取与格式转换超详细教程

公共数据集库:包含超过20,000个开源数据集数据标注工具:支持在线标注和团队协作数据预处理:自动增强、扩充和格式化版本控制:像管理代码一样管理数据集版本多格式导出:支持所有主流目标检测格式import cv2# 加载图像# 加载标注# 数据增强# 调整尺寸# 调整标注坐标# 转换为Tensor# 实现保持长宽比的resize逻辑pass# 坐标转换逻辑pass# 数据增强实现pass数据集选择优先选择Roboflow上标注质量高的官方数据集。

weixin_39818775的博客 2359

数值型数据与字符串之间的转化以及浮点数取整

这两天定的的外卖都很失败,导致上火导致口腔溃疡【大哭】!!!!!还好,天气转凉人还是好的,起码思路是清晰的。 ---------------------------------------------------------------------------------------------------------------------- 以下是正文 【提纲: 主要说明几个...

amber_2016的博客 258

[24] cuda 应用之 nppi 实现图像颜色通道变换

[24] cuda 应用之 nppi 实现图像颜色通道变换

yohnyang的博客 343

API方法使用,和基本方法介绍

API API (Application Programming Interface) :应用程序编程接口 1如何使用API帮助文档 打开帮助文档 找到索引选项卡中的输入框 在输入框中输入Random 看类在哪个包下 看类的描述 看构造方法 看成员方法 1.1 Math(应用) 1、Math类概述 Math 包含执行基本数字运算的方法 2、Math中方法的调用方式 Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名.进行调用 3、Math类的常用方法 1.2 System

allenguitar的博客 3237

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 字符串 整型 浮点型 相互转换

java中String字符串转化为数字: // 转换为浮点型: // 使用Double或者Float的parseDouble或者parseFloat方法进行转换 // String s = "123.456 "; //要确保字符串为一个数值,否则会出异常 // double d = Double.parseDoubl

八戒卖萌的博客 7297

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

javascript 数值与字符传相互转换

在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使用Integer.valueOf()。 可见,不能把JavaScript中的类型转换看作为“强制类型转换”。 在JavaScript中,Double类型和Int类型都是看作为Number对象,因此

cike110120的专栏 948

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

第九章 常用类

常用类的基础知识。

m0_53222084的博客 187

Java中API的使用以及一些常用的方法(异常,包装类,时间类)

Math类中,定义了"和数学运算有关系的功能"​System中包含了一些"系统相关"和"JDK相关"的方法​Object是一切类的父类.所有类都直接或间接继承该类.​Objects是一个操作对象的工具类.​BigDecimal是一个高精度的double类型数据.在进行高精度运算时,要使用BigDecimal进行运算.​就是基本数据类型对应的"引用数据类型形式",一般用于"基本数据类型和String之间的相互转换"​Integer是int类型的包装类​专门用来操作数组的工具类....

weixin_48548208的博客 616

JavaScript的类型转换(字符转数字,数字转字符)

在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使用Integer.valueOf()。可见,不能把JavaScript中的类型转换看作为“强制类型转换”。在JavaScript中,Double类型和Int类型都是看作为Number对象,因此无论是t

GOD'S SON 457

类型转换

强制转换 leti=null; letF68=Number(i); console.log(typeofF68,F68);//输出number0 leti="abc"; letF68=Number(i); console.log(typeofF68,F68);//输出numberNaN leti=undefined; letF68=Number(i); console.log(typeofF68,F68);//输出numberNa...

weixin_44762420的博客 513

swagger-codegen 生成 Android HttpClient 客户端的 UserApi 完整实战指南

本文以 swagger-codegen 仓库中生成的 Android(Apache HttpClient)样例客户端为对象,系统讲解 `UserApi` 的全部 8 个用户管理接口的调用方式、参数约定与底层实现原理。通过阅读本文,你将掌握由 [UserApi.md](https://link.gitcode.com/i/c0b2127e716b37335a8970953a07fe4f) 所定义的用

gitblog_01163的博客 502

C#学习记录——入门到进阶

输入输出 //输出语句:换行输出 Console.WriteLine("hool,word"); Console.WriteLine("hool c#"); //输出语句,无换行输出 Console.Write("hool word"); Console.Write("hool c#"); //

i_like_python3的博客 2946

Python Based on C

-,*,/实数除法//整除取余%**(乘方)2**3=8 比C语言方便太多了还是2.内置的数值运算函数。

2603_94865212的博客 497

JS 常用方法合集

this.analyzeIDCard("110101199003077117") // { "sex": { "name": "男", "value": 1 }, "birthYear": 1990, "birthMonth": 3, "birthDay": 7, "birthDate": "1990-3-7", "age": 33。this.getFileNameSuffix("测试文件.txt", true, true) // .txt。this.valCheck("张三") // 张三。

UserGuan的博客 4289

专注计时与时间记录应用HarmonyOS ArkTS API 24引入了 AppStorage 作为全局状态容器,将时间记录列表、项目列表等跨页面共享的数据统一托管

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

2401_86031952的博客 251
上一篇: Oracle中CREATE FORCE VIEW的说明和例子
下一篇: css优先级算法如何计算
codemami
博客等级 码龄3年 1369粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值