首页 > 编程知识 正文

c语言中浮点数是什么意思,c语言精度为6要不要四舍五入

时间:2023-05-03 22:26:36 阅读:153214 作者:4455

【c语言】浮点数四舍五入后剩下两位小数

第一次做这个主题的时候,我用了一个笨方法。 利用强制类型变换可以得到该浮点数的整数部分。 然后分别取出10分位、100分位、1000分位的数字,判断1000分位的数字是否大于等于5,100分位进入1后,将这些数字乘以系数相加即可

有关获取一位数字的详细信息,请参阅如何在另一个博客上获取正数或浮点数的数字

#includestdio.hintmain(intargc,const char * argv [ ] ) (doublef=123.4567; //整数部分inta=(int ) f得到//10分位部分intb=(int ) ) f*10 ); //百分位部分intc=(int ) ) (f*100 ); //千分位部分intd=(int ) ) (f*1000 ); //判断千分位是否在5if以上(D=5) )//,百分位进入个位c; //乘以系数再加上double e=a b*0.1 c*0.01; printf(a=%d(n ),a ); printf(b=%d(n ),b ); printf(c=%dn ),c ); printf(d=%d(n ),d ); printf(e=%f(n ),e ); 返回0; )这个方法明显很愚蠢(看到主题的时候,脑子不转),所以介绍一下常用的方法

四舍五入的方法

如果从某个数字开始四舍五入,判断其下一位的数字是否为5以上是很自然的事情,但实际上可以通过在该数字上直接加上5来跳过判断的过程

例如

100.1123四舍五入保留整数: 100.1 0.5=100.61四舍五入后100

100.7123四舍五入保留整数: 100.7 0.5=101.21四舍五入为101

但是,要四舍五入到小数点以下,只利用这个特性是不够的。 例如

100.1123通过四舍五入保留两位小数: 100.1123 0.005=100.1173

100.1173通过四舍五入保留两位小数: 100.1173 0.005=100.1253

怎么去掉百分位后的数?

如何处理小数点以下的四舍五入

强制变换为int型时,可以利用截止的特性来实现

例如

int a=0.75实际上a代入0,小数部分被舍去

利用该特性,将保持的数据移动到整数位后,强制变换为int型,恢复为求出的数字即可

#includestdio.hintmain(intargc,const char * argv [ ] ) (doublef=123.4567; //1 .四舍五入f=f 0.005; //2 .将保存的数据移位整数位,使之成为int temp=f*100一步一步//inttemp=(f0.005 ) *100; //3 .所需的数字f=temp /转移到100.0的printf(f=%f(n ),f ); 返回0; }当然,转移到int型后进行四舍五入,结果也是一样的。

#includestdio.hintmain(intargc,const char * argv [ ] ) (doublef=123.4567; //边四舍五入边inttemp=(int ) ) f*100 0.5 ); //转换为所需数字f=temp/100.0; printf(f=%f(n ),f ); 返回0; }注float型的有效数字为6~7位,6位以后的数据可能不正确,为了确保精度,需要长浮点数时,建议使用double型

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。