1、在C语言中一个数保留1位小数可以通过精度限定符来完成,精度限定符由一个点号后跟一个整数组成。如果要限定小数点后面一位的类型为0或者5,可以使用先乘取整再除的方法进行操作。
2、例程:
#include <stdio.h>int main(){
dobule a = 1.23456
printf("%.1f", ((int)a*2)/2.0)//使用精度限定符%.1f,输出:1.0
return 0
}
定义的时候不能控制有效值位数,你可以尝试在计算完成后对结果c进行处理,控制c的精度
如下程序可以实现:
但是必须把c定义为
double
否则有误差:
float
a
=
10,
b
=
3
float
c
char
t[4]
float
result
//double
result
c
=
a
/
b
sprintf(t,"%.2f",c)
//将浮点数转换成字符串
result
=
(float)atof(t)
//result
=
atof(t)//将字符串转化成浮点数