文章目录

  • 浮点数
    • C语言规定:
    • 总结:
    • 浮点数的输出
    • 常用的库函数
    • 应用技巧
    • 科学记数法

浮点数

浮点数也称小数或实数, C语言中采用float 和double关键字来定义小数, float 称为单精度浮点型, double称为双精度浮点型,long double更长的双精度浮点型.浮点数通常只是实际值的近似值, 比如7.0可能被存储为6.999999

C语言规定:

  • float 类型必须有至少6位有效数字, 且取值范围至少是10-37-1037

  • double与float的最小取值范围相同, 但至少必须有表示10位的有效数字.

  • long double 满足比double类型更高的精度要求.不过,C只保证long double类型至少与double类型的精度相同.

  • float 数的两个特征:

    1. float数据类型表达的是一个近似的数, 不是准确的, 小数点后的N位有误差, 浮点数的位数越大, 误差越大, 到8位的时候误差了1, 基本上不能用了.
    2. 用"=="可以用来比较两个整型或字符是否相等, 但看起来相等的两个浮点数就是不会相等.

总结:

  1. float 只能表达6-7位的有效数字, 不能用==来判断两个数字是否相等.
  2. double 能表达15-16位有效的数字, 可以使用==来判断两个数字是否相等.
  3. long double 与 double的特征相同.
  4. ==在实际开发中,建议弃用float, 只采用double就可以了, long double 暂时没必要, 但以后的操作系统和编译器对long double 是 否有改进, 暂时不得知. ==

浮点数的输出

  • float 采用 %f输出,

  • double 采用 %lf输出,测试结果显示, 也可以使用%f输出, %lf缺省显示小数点后六位.如果要显示小数点后n位, 用%.nlf 这个python中的保留多少位小数位一样的, 比如保留2位, 就是%.2f,

  • %lf完整的输出格式是%m.nlf, 指定输出数据整数部分和小数部分共占m位, 其中有n位是小数位, 若实际数值长度小于m, 则左侧补空格, 若实际数值长度大于m, 则按实际输出.

  • long double 采用%Lf输出, 注意L是大写的

常用的库函数

  • double atof(const char *nptr); // 把字符串nptr转换为double.
  • double fabs(double x ); // 求双精度实数x的绝对值.
  • double pow(double x, double y); // 求x的y次幂(次方)
  • double atof(const char *nptr); // 把字符串nptr转换为double.
  • double round(double x); // double 四舍五入
  • double ceil(double x); // double 向上取整
  • double floor(double x); // double 向下取整
  • double fmod(double x, double y); // 求x/y 整除后的双精度余数
  • double modf(double val, double *ip); // 把双精度val分解成整数部分和小数部分, 整数部分存放在ip所指的变量中, 返回小数部分.

应用技巧

  • 在实际开发中, 我们经常用整数代替浮点数, 因为整数是精确的, 效率也更高.
  • 如:人的身高一米七五, 使用米来表示,就是1.75m, 是浮点数, 使用厘米表示就是175cm, 是整数,

科学记数法

在实际开发中, 很少使用科学记数法, 浮点数经常出现在计算机系统中, 在内存中的存放方式就是科学计数法, 科学记数法是一种记数的方法, 把一个数表示成a与10的n次幂相乘的形式,(1<=|a|<10, n为整数)

  • 如: 678000000000也可以记为6.78X1011计算器与电脑表达10的幂一般是用E或e, 也就是说678000000000=6.78E11或6.78e11
  • 输出采用: %E%e, 完整的输出方式是:%m.nE%m.ne 指定输出数据整数部分和小数部分共占m位, 其中有n位是小数位, 若实际数值长度小于m, 则左侧补空格, 若实际数值长度大于m, 则按实际输出

初学C语言中的浮点数相关推荐

  1. 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数

    本次笔记内容: 04.浮点数的计算机表示 文章目录 IEEE的浮点数标准 IEEE的754标准 浮点数示例 计算机中浮点数二进制表示 浮点数的类型 规格化浮点数(Normalized) 规格化浮点数示 ...

  2. C语言中判断浮点数是否等于0

    1.C语言中判断浮点数是否等于0: 2.C语言中判断两个浮点数是否相等: float.double分别遵循R32-24,R64-53的标准.他们尾数的位数分别是23.52,即误差在2^-23,2^-5 ...

  3. 初学c语言中的一些常见代码

    初学c语言中的一些常见代码 一.输出乘法口诀表 二.判断1000年---2000年之间的闰年 方法1: 方法2: 三.输出1~100之间的奇数 方法1: 方法2: 四.计算n的阶乘 五.计算1!+2! ...

  4. 浮点数c语言,c语言中的浮点数

    一.浮点数常量(小数) 0.11L, 0.0f ,0.0,1.88,2.5f ,0.188E1 E3表示103比如 1.88E 3=1.88*1000=1880.0f E-3表示10-3 比如 1.8 ...

  5. C语言中特殊浮点数:-1.#IND00和NAN

    前言 在C语言的浮点数:float,double中存在一类特别的数:-1.#IND.我们有时会看到它.比如: float tmp =sqrt(-1); 此时tmp的值就是-1.#IND IND其实就是 ...

  6. PC_浮点数表示/定点数和浮点数比较/溢出/C语言中的浮点数类型

    文章目录 浮点数 ref 浮点数表示 浮点数形式分析 书面形式的一般浮点数(真值) 小数:纯小数和带小数(混小数)

  7. c语言中的指数和尾数是什么意思,浮点数的指数和尾数的研究

    1概述在计算机中,常采用两种方法来表示数据,一种是定点表示法,另一种是浮点表示法.对于这两种表示方法,都用相同的字长表示二进制数.浮点数表示的方法中小数点的位置是浮动的.在这种表示方法中,一部分表示尾 ...

  8. python语言的三种数字类型_Python语言中的类型之数字类型--Python(10)

    数据从不一样的角度能够用不一样的含义去解释它,如: 10,011,101 对上面这个数据,咱们有以下多种含义去解释它: 1)它是1个二进制数字,或者是1个十进制数字: 2)一段文本: 3)用 , 号分 ...

  9. c语言中浮点数和整数转换_C中的数据类型-整数,浮点数和空隙说明

    c语言中浮点数和整数转换 C中的数据类型 (Data Types in C) There are several different ways to store data in C, and they ...

最新文章

  1. iOS自动布局(AutoLayout)之 NSLayoutAnchor
  2. git 内网搭建_搭建GitLab(Github) 简易教程
  3. 【转】细说.NET中的多线程 (二 线程池)
  4. php图片旋转显示不出来的,php – 我服务的图像不正确,它们都显示为旋转90度
  5. mysql 快速插入(insert)多条记录
  6. Python使用for循环打印直角三角形
  7. linux音频驱动程序测试,Linux声卡驱动移植和测试
  8. 数据库知识与技巧日常汇总
  9. 视频教程-细说HTML(HTML+HTML5)-HTML5/CSS
  10. Ubuntu 18.04 增加swap空间 亲测有效
  11. 【Excel2019(十二):Match与Index函数】【函数语法+与VLOOKUP比较+单元格引用原理+认识COLUMN函数+使用Match与VLOOKUP函数嵌套返回多列结果】
  12. ubuntu下flann库编译报错处理
  13. 微信报错errcode大全
  14. markdown笔记(一)—— 首行缩进和换行
  15. VTK笔记-CT图像获取皮肤等值面-vtkContourFilter类的使用
  16. 3.4. Transactions
  17. 微信sae云服务器后台创建
  18. STM32CubeMX——LED定时闪烁和输出PWM波
  19. 第一范式、第二范式和第三范式
  20. 射频day4:史密斯圆图

热门文章

  1. 如何在WinXP下查看软硬件端口的占用情况
  2. Notepad ++中的一个著名插件FingerText
  3. python如何对两个矩阵进行拼接_Python:合并两个numpy矩阵的实现
  4. Three.js 基础之灯光
  5. 单片机定时器一1ms12MHz_【51单片机】基于STC89C52RC的多路电压采集系统
  6. linux 汇编 `.eabi_attribute',交叉编译arm-none-eabi-gcc编译汇编文件(startup_stm32f10x_hd.S)遇到的有关问题(2)...
  7. 链接如何生成二维码?怎样创建一个网址二维码?
  8. uniapp设置输入框金额效果demo(整理)
  9. html5学习开发指南
  10. creo 二次开发 protookit 官方make file 案例试运行