有问题就有答案
Q1:c语言中float类型,小数点后面保留0位小数,可以写成%.f吗,还是只能是%.0f?
c语言的printf格式化输出函数的%.03f,意思是排除非有效数字的0输出,仅保留3位有效数字,但是使用%.0f是只能输出0的,例如:printf("%%.03f,%.03f\n",a);//这句可以输出0.007 printf("%%.0f,%.0f\n",a);//但是这句就只能输出0,在最新的GCC编译器中是这样//但是在visual studio c 里又是正常的如果你想去除浮点数a的小数部分,可以使用a=-6.5;printf("%%d,%d\n",(int)a);//输出为-6 如果你想最稳定地输出数字,建议用math.h的round函数
Q2:C语言 float型的数字后面要加f吗?
float类型的文字常数,后面需要跟f或f,表示它是单精度浮点数。所以就这样写吧,因为默认的浮点常量都是双精度的。# includeintmain(){ 1.1;//这个浮点文字常量,它的默认类型是doublefloatf1=1.1f//使用小写ffloatf2=1.1F//使用大写的Fprintf("%f\t%f\n ",f1,F2);返回0;}
Q3:C语言中小数保留位数问题
您可以使用printf函数中的输出格式描述符来保存一个小数点。float a=3.14159printf("%.1f ",a);//输出结果为3.1printf("%x.yf ",a);//其中x和y是常数,a是要输出的变量。//对于变量A的整数部分的输出,如果A的整数部分小于X位,则按照实际位数输出。//对于变量A的小数部分,如果A的小数部分小于X位,则在后面补0,如果大于X位,则按照取整准则输出Y个小数位。
Q4:关于C语言中小数的保留问题
答案是Bn*100可以把第三位小数变成第一位小数之后再+0.5的话,如果原来小数部分是大于等于0.5的话,那么整数部分就会加1,否则不变(符合四舍五入)m = n*100+0.5可以把等号右边的数值的整数部分存下来,就是四舍五入后的结果m/100.0是还原小数位到2位
Q5:c语言中float型的精度问题
编程中只能控制范围,不能控制小数点后38位浮点的精度,如printf("%0.2f ",x);输出x的值,小数点后保留2位。当然也可以是n位。
Q6:C语言float类型
c语言浮点类型是单精度浮点类型。对于每个浮点数,二进制代码的意思是:(-1)s * m * e . s 3360指的是的符号位,它有两个值。当它为0时,表示正浮点数。值1表示负浮点数。M:为有效数字。这是一个索引。实际上,这是一个偏差指数。一般来说,浮点单精度浮点型占用32个二进制位,其中s符号位占用1位,m有效位占用23位,e指数位占用8位。