如何让float变量精确到小数点后两位?
双精度或浮点变量x可以舍入为(int)(x0.5)。同样,如果你想保留两位小数(int)(100*x0.5)*0.01
在c语言中,有很多解决这个问题的方法。
假设我们有一个号码3.1415926。。。我们要把它四舍五入到它指定的小数位。假设四舍五入得到3.142000的结果
我们需要以下过程:
##include<stdio。h>
intmain()
{doublenum1,num2
num1=3.1415926
num1=(int)(num1*10000.5)//使用cast操作舍入第三位后的小数部分
num2=num1/1000//将数字除以1000并还原
printf(%f”,num2)
返回如果您是c99规范的编译器,您可以可以直接使用round函数
用法如下:
#include<stdio。h>
intmain()
{
num1=3.1415926,num2
num2=num1*1000
num2=round(num2)/1000//round(x)返回x的舍入整数值,然后舍入以下小数点。
printf(%f”,num2)
返回0
}
如果您只想对浮点数进行四舍五入,我们可以直接执行
#include<stdio。h>
intmain()
{
doublenum1
num1=3.1415926
printf(“%)。3f“,num1)//0.3是一个附加的格式字符,意思是在小数点后保留3位数字,并自动进行四舍五入
返回0
}
c语言如何实现四舍五入?
],例如小数点是f
](float)((int)(f*100)[0.5))/100.0
为了保留两位,先乘以100,小数点向前两位,然后0.5四舍五入,保证四舍五入,然后转换成浮点数形式或双精度形式,再除以100
假设小数点后需要四舍五入两位,利用整数的特性截断小数值:floata=3.1415926,bintcb=ab*=100//b=314.15926b=0.5//四舍五入位数c=bb=c//截断小数点后的数据c=314,b=314.0b/=100//恢复原来的小数点位置b=3.14,只需写如下:b=(int)(a*100.5)/100f
原文标题:c语言float四舍五入 如何让float变量精确到小数点后两位?,如若转载,请注明出处:https://www.saibowen.com/tougao/17275.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。