关于浮点型数据的一些整理

一、概念

float :单精度浮点型数据类型

double :双精度浮点型数据类型

二、对比

类型float型double型
字节数4(包括一个符号位)8
精度                           float < double
cpu处理速度                           float > double
scanf 用法%f%lf
printf 用法%f%f(推荐)或 %lf
有效数字(有效位)6~715~16
数值范围(绝对值)0及1.2e-38~3.4e380及2.3e-308~1.7e308

                     注:%f 默认保留六位小数,要保留n位小数用printf ("%.nf",a); 

三、误差

数字存储在32位或64位浮点变量(float类型和long类型的变量)中时只能以非标准化类型存储。

它们在存储数据时存储的都是近似值。eg:3.3333333333......此类数据其实是无限循环,但计算机的内存有限,用有限的地方存储无限的数据,只能存储近似值。

四、选择

存储比精度更重要,对浮点变量用float类型;

精度更重要,用double

(double的精确性以空间和性能的消耗为代价)

【放一些例子帮助理解】

eg1. 在迭代程序中,随迭代次数积累,偏差会越来越大。

eg2. (a+b)+ c   ≠   a  +(b+c)     

eg3. 10/3用float存储:3.33333          用double存储:3.3333333333333

tip: double 之于 float 可类比 int 之于 short

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值