首页 > 其他分享 >四类取整方式

四类取整方式

时间:2024-09-16 20:03:33浏览次数:7  
标签:5.5 方式 四类 取整 2.3 round 3.8 trunc

目录

C语言的四种取整方式:


零向取整

如图:

image-20240502180459967

可以发现C语言a和b的取整方式都不是四舍五入,而是直接舍弃小数部分.(a四舍五入是-3,b四舍五入是3.)这种方式叫做零向取整.也是c语言中的默认取整方式

image-20240502203220627

从图中可以看出无论是-2.9还是2.9,它们取整方向都是向着0的方向取整.


trunc函数(C99)

C语言<math.h>库中也有零向取整函数,它的返回值是浮点型,如果需要也是可以强转成int类型使用.

image-20240502182325013


trunc的使用

image-20240502222958451

注意,%d不能直接接收浮点型,浮点型在内存空间中的布局和整型是不一样的,这点要注意.

如果需要转成整型使用,需要圆括号(int)强制类型转换.


地板取整

这个名字有点奇怪,它是函数floor的翻译而来.

也叫向下取整,向左取整,向负无穷取整

image-20240502211936753

image-20240502203203237


floor函数的使用

image-20240502223257986


向上取整

又称向右取整,向正无穷取整, 来源于ceil函数

image-20240502221803375

image-20240502221916354


ceil函数的使用

image-20240502223221177


四舍五入


round函数(C99)

image-20240502223527209


round函数的使用

image-20240502223401492


四种取整方式演示

#include<stdio.h>
#include<math.h>

int main()
{
    const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n"; 
    printf("value\tround\tfloor\tceil\ttrunc\n");
    printf("-----\t-----\t-----\t----\t-----\n");
    printf(format, 2.3, round(2.3), floor(2.3), ceil(2.3), trunc(2.3));
    printf(format, 3.8, round(3.8), floor(3.8), ceil(3.8), trunc(3.8));
    printf(format, 5.5, round(5.5), floor(5.5), ceil(5.5), trunc(5.5));
    printf(format, -2.3, round(-2.3), floor(-2.3), ceil(-2.3), trunc(-2.3));
    printf(format, -3.8, round(-3.8), floor(-3.8), ceil(-3.8), trunc(-3.8));
    printf(format, -5.5, round(-5.5), floor(-5.5), ceil(-5.5), trunc(-5.5));
    return 0;
}

image-20240502224455627


标签:5.5,方式,四类,取整,2.3,round,3.8,trunc
From: https://www.cnblogs.com/DSCL-ing/p/18414569

相关文章

  • C# 以管理员方式启动程序:你需要知道的5个关键步骤
    ......
  • Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库
    Windows下C#通过ADO.NET方式连接南大通用GBase8s数据库引言在现代企业应用开发中,数据库连接是一个至关重要的环节。南大通用GBase8s数据库作为一种高性能、高可靠性的关系型数据库管理系统,广泛应用于金融、电信、**等领域。本文将详细介绍如何在Windows环境下使用C#通过ADO.NE......
  • Jina AI 发布 Reader-LM-0.5B 和 Reader-LM-1.5B:为网络数据处理提供多语种、长语境和
    JinaAI发布的Reader-LM-0.5B和Reader-LM-1.5B标志着小语言模型(SLM)技术的一个重要里程碑。这些模型旨在解决一个独特而具体的挑战:将开放网络中原始、嘈杂的HTML转换为干净的标记符格式。这项任务看似简单,却面临着复杂的挑战,尤其是在处理现代网络内容中的大量噪音......
  • [VMware]ESXI下硬盘的直通方式
      ESXI6.7下直通硬盘给群晖步骤,RDM直通方式! 参考文章:https://rmbz.net/archives/vmware-esxi-passthrough1.进入ESXI6.7web管理后台。开启SSH2.点击存储,选择默认存储(ESXI安装硬盘)。复制位置地址备用; 3.打开SSH工具,登录SSH。登录以后执行以下命令。执行命令1:......
  • Java中锁的实现方式
    锁LOCK在生活中是特殊区域的安全保证操作。权限虽然很大,锁在不同的领域中需要对局部进行特殊管制。J2EE的开发中使用权限和锁实现对后台服务系统的控制访问。登录模块使用特殊令牌token和锁的分布式存储用户特殊登录信息数据。每个web系统都会有权限验证模块。锁是web系统开发......
  • C语言中的GCC的优化和数组的存放方式、Cache机制、访问局部性
    “我们仍需共生命的慷慨与繁华相爱,即使岁月以刻薄和荒芜相欺”文章目录前言文章有误敬请斧正不胜感恩!第一题:***什么是gcc:***C语言中,“gcc-O2”是使用GCC编译器时的一个编译选项。第一部分:为什么程序一输出0,而程序二输出1?第二题:第二部分:为什么两个循环版本的性能......
  • C++【全特化】【半特化】【继承方式权限】【继承使用】【菱形继承的探究】【组合与继
    目录类模板的特化全特化偏特化特化部分参数对参数类型进行一定的限制关于*&的讨论特化的优先级类模板的声明和定义分离​编辑继承初学继承概念理解继承方式继承权限继承切割与切片继承的作用域继承的默认构造成员函数继承的默认构造继承的拷贝构造继承的赋......
  • 11.2.0.4 RAC,手动方式安装PSU补丁
    1、前言注意:Oracle不建议客户使用手动方式进行补丁安装,客户应该使用opatchauto方式进行补丁安装工作。但是,在opatchauto的过程中如果出现问题,我们可以将本文档中的步骤作为临时解决方法。 2、故障描述客户有一套Exadata环境下的11.2.0.4RAC,近期进行安全扫描时,提示一些数据......
  • 清理内存还只会从桌面拖拽进回收站?进来学习清理内存的正确方式
    电脑清理内存的方法随着电脑的使用,内存会被不断的占用,如果不及时清理,会导致电脑运行变慢,甚至崩溃。因此,清理电脑内存是非常重要的。下面介绍几种清理电脑内存的方法。 首先,可以使用操作系统自带的工具来清理内存。Windows系统自带的“磁盘清理”工具可以帮助清理系统垃圾文件,清......
  • 对象的创建方式:浅拷贝和深拷贝
    对象的创建方式:浅拷贝和深拷贝前言一、值传递和引用传递二、浅拷贝和深拷贝的理解1浅拷贝2.深拷贝三、代码验证和实现3.1浅拷贝的代码实现结果分析3.2深拷贝的代码实现一、实现cloneable接口结果分析实现Cloneable接口并重写方法的缺点二、实现序列化前言今......