循环时浮点数储存带来的问题

1.存储精度的问题
float 和 double 都不能保证精确的存储每一个小数, 浮点数存放的只是一个近似值。
面试题:如何判断一个浮点型变量x的值是否是0?
答:if(|x-0.000001|<=0.000001)–>x=0

2.为什么循环更新的变量不能定义成浮点型?
由于浮点型存储的是一个近似值,所以在进行循环的判断条件的求值的时候,其值会影响判断条件的结果。
比如说:i<=100,如果这个时候i的值是100.000001,于是这一步就没有加入循环,这个时候就会影响整个循环的执行,我们更新部分的值只能是一个整数。
例子:

#include<stdio.h>

int main()
{
	float i = 99.9;
	printf("%f\n",i);
	
	return 0;
 } 
 
 /*
 	输出结果是
	 99.900002所以浮点型保存的数据是一个近似值。 
 */ 

3.强制类型转换
格式:(数据类型)(表达式)
eg:(float)(5) == 5.00000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值