C语言中的浮点数

转载 2012年03月29日 15:30:45

1.避免对两个实数做是否相等的判断

因为实数在计算机中的实际存储和我们现实定义的实数大小之间存在误差。

例如: float a = 5.1 ,在计算机实际运算的过程中,因为a被定义成浮点数,采用的是近似值,实际上可能并不等于5.1,可能等于5.09999之类的

所以当你用 a== 5.1做判断的时候,肯定是不行的

2.尽量不要使用浮点数作为循环变量

3.避免直接使用差距很大的两个数进行相加和相减,因为浮点数的有效数为是有限的

4.浮点运算时,尽量使用double类型

浮点数7位有效数字。
双精度数16位有效数字。

浮点数比较相等时,使用fabs(x-y)<0.000001

 

关于C语言浮点数的存储

  • 2014年11月15日 01:40
  • 31KB
  • 下载

C语言浮点数和整数转换的分析

        这里以C语言的浮点数为例,在IEEE浮点标准下,整数转换为浮点数的过程做一些直观的分析和具体的实现,IEEE浮点数的标准细节详见(http://en.wikipedia.org/wik...
  • zhzhanp
  • zhzhanp
  • 2011年04月21日 21:10
  • 13216

C語言使用浮點數的觀念

  • 2009年06月17日 10:30
  • 449KB
  • 下载

C语言浮点数

前几天,我在读一本C语言教材,有一道例题:   #include   void main(void){   int num=9; /* num是整型变量,设为9 */   float* pF...

【C语言简单说】三:浮点数变量和字符变量(4)

在最开始的时候,我们说过,我们的变量是有类型的对吧?(其实我已经忘记我有没有说)0o。(-. - ) 睡觉这节我们就来说说,我们之前有整数变量了对吧?那个int就是整数类型的对吧?好了,我们现在就来说...

【C语言】得到浮点数的二进制

浮点数在内存中的存储 本文主要介绍通过C语言来获得浮点数在内存中的实际存储方式。     浮点数在内存中是按照IEEE754标准进行存储的,本文以单精度浮点型为例,也就是C语言中的float...
  • cflys
  • cflys
  • 2017年02月25日 19:59
  • 338

C语言:浮点数在内存中的表示

单精度浮点数: 1位符号位   8位阶码位   23位尾数 双精度浮点数: 1位符号位   8位阶码位   52位尾数   实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于...

C语言再学习 -- 浮点数

参考:你应该知道的浮点数基础知识 一个有趣的实验 本文从一个有趣而诡异的实验开始。最早这个例子博主是从 Stackoverflow上的一个问题中看到的。为了提高可读性,博主这里做了改写,简化成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言中的浮点数
举报原因:
原因补充:

(最多只允许输入30个字)