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

1019:浮点数向零舍入(分正负取整)

【题目描述】
输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。

【输入】
一个单精度浮点数。

【输出】
一个整数,即向零舍入到整数的结果。

【输入样例】
2.3
【输出样例】
2

#include<bits/stdc++.h>
using namespace std;
int main(){float a;cin>>a;cout<<(int)(a)<<endl;return 0;   
}

真正要先判断正负,
fixed和setprecision(n)配合使用括号里n位数,就是保留n位小数,会有四舍五入。比如n为3,结果就是3.142。但会有报错出错,暂时不知道哪里。
几钟舍入
1.就近舍入Round to nearest (even)
2.朝0舍入Round toward zero (Truncate)
3.朝正无穷舍入Round up (toward +∞)
4.朝负无穷舍入Round down (toward −∞)
1.就近舍入(向偶数舍入):即十进制下的“四舍五入”
(1)例如有效数字超出规定数位的多余数字是1001,它大于超出规定最低位的一半(即0.5),故最低位进1;
(2)如果多余数字是0111,它小于最低位的一半,则舍掉多余数字(截断尾数、截尾)即可;
(3)对于多余数字是1000、正好是最低位一半的特殊情况,最低位为0则舍掉多余位,最低位为1则进位1、使得最低位仍为0(偶数)。

2.朝0舍入(正数向下舍入、负数向上舍入):即朝数轴零点方向舍入,即直接截尾。

3.朝正无穷舍入(向上舍入):对正数而言,只要多余位不全为0则向最低有效位进1;负数则直接截尾。

4.朝负无穷舍入(向下舍入):对负数而言,向最低有效位进1;正数若多余位不全部为0则简单截尾。
二、举例说明
1.就近舍入Round to nearest (even)
Rounded result is the closest to the infinitely precise result. If two values are equally close, the result is the even value (that is, the one with the least-significant bit of zero).
四舍五入的结果是最接近无限精确的结果。如果两个值相等,则结果为偶数(即最低有效位为0的那个值)。

对于1.001_1001,舍入处理后为1.010(去掉多余的4位,加0.001)
对于1.001_0111,舍入处理后为1.001(去掉多余的4位)
对于-1.001_1000,舍入处理后为-1.010(去掉多余的4位,加0.001,因为此时最低位为1)
对于-1.010_1000,舍入处理后为-1.010(直接去掉多余的4位,因为此时最低位为0)
AI写代码
c
运行
1
2
3
4
2.朝0舍入Round toward zero (Truncate)
Rounded result is closest to but no greater in absolute value than the infinitely precise result.
四舍五入的结果在绝对值上最接近但不大于无限精确的结果。

//正数直接截尾
对于1.001_1001,舍入处理后为1.001(直接去掉多余的4位)
对于1.001_0111,舍入处理后为1.001(直接去掉多余的4位)

//负数直接截尾
对于-1.001_1000,舍入处理后为-1.001(直接去掉多余的4位)
对于-1.010_1000,舍入处理后为-1.010(直接去掉多余的4位)
AI写代码
c
运行
1
2
3
4
5
6
7
3.朝正无穷舍入Round up (toward +∞)
Rounded result is closest to but no less than the infinitely precise result.
四舍五入的结果最接近但不低于无限精确的结果。

//正数多余位不全为0进位1
对于1.001_1001,舍入处理后为1.010(去掉多余的4位,加0.001)
对于1.001_0111,舍入处理后为1.010(去掉多余的4位,加0.001)

//正数多余位全为0直接截尾
对于1.001_0000,舍入处理后为1.001(直接去掉多余的4位)

//负数直接截尾
对于-1.001_1010,舍入处理后为-1.001(直接去掉多余的4位)
AI写代码
c
运行
1
2
3
4
5
6
7
8
9
4.朝负无穷舍入Round down (toward −∞)
Rounded result is closest to but no greater than the infinitely precise result.
四舍五入的结果最接近但不大于无限精确的结果。

//正数直接截尾
对于1.001_1001,舍入处理后为1.001(直接去掉多余的4位)
对于1.001_0111,舍入处理后为1.001(直接去掉多余的4位)

//负数多余位全为0直接截尾
对于-1.001_0000,舍入处理后为-1.001(直接去掉多余的4位)

//负数多余位不全为0进位1
对于-1.001_1010,舍入处理后为-1.010(去掉多余的4位,加0.001)
AI写代码
c
运行
1
2
3
4
5
6
7
8
9
参考链接: https://www.cnblogs.com/jva-index/p/13897423.html
https://blog.51cto.com/u_8741388/1625404

三、舍入模式的英文简写
rne: 最近舍入,朝向偶数方向(round to nearest, ties to even)
rtz: 朝零舍入(round towards zero)
rdn: 向下舍入(round down)
rup: 向上舍入(round up)
rmm: 最近舍入,朝向最大幅度方向(round to nearest, ties to max magnitude)
dyn: 动态舍入模式(dynamic rounding mode)

http://www.jsqmd.com/news/20702/

相关文章:

  • 创建 SQL Server 数据库【通用】
  • HNSW算法实战:用分层图索引替换k-NN暴力搜索
  • 日志分析-IIS日志分析
  • Spring Boot 自动配置之 TaskExecutor - 实践
  • 二分图/忆re.
  • 编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服
  • 《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​
  • 如何制作PDF文件目录? - 详解
  • todesk远程到被控Mac后能看到画面,鼠标键盘执行无反应
  •  pytorch 66页实验题
  • 10/23
  • 玛哈特十一辊矫平机:把金属板送进“11 次节拍器” - 教程
  • JAVA 排序用法
  • esp32-usb-jtag 调试踩坑
  • MySQLDay3
  • 第3天(中等题+简单题 数组、滑动窗口)
  • 完整教程:微信小程序学习(一)
  • ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级
  • 深入解析:XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>
  • MySQL主从同步读写分离
  • AI股票预测分析报告 - 2025年10月23日 20:26
  • 软件包管理
  • nginx反向代理测试搭建
  • SwiftUI NavigatorStack 导航容器
  • 深入解析:【仿生机器人】基于 GPT-SoVITS 的 发声器
  • .NET Core报错克服【无废话上操作】
  • 深入解析:【算法】【数学】 练习题目列表
  • 题解:P11831 [省选联考 2025] 追忆
  • 2025-10-23 MX-S 模拟赛 赛后总结【MX】
  • PCL1.12 解决memory.h中EIGEN处中断问题