C语言入门之浮点数
实际开发中使用double,而不使用float
浮点数的输出
float
采用%f占位符。
double
采用%lf占位符。测试结果证明,double不可以用%f输入,但可以用%f输出,但是不建议采用%f,因为不同的编译器可能会有差别。
long double
采用%Lf占位符,注意,L是大写。
浮点数输出缺省显示小数点后六位。
浮点数采用%lf输出,完整的输出格式是%m.nlf,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。
常用的库函数
在接下来的内容中,我只介绍double,不再介绍float和long double两种数据类型相关的知识。
以下是常用的浮点数函数,必须掌握。
double atof(const char *nptr);
// 把字符串nptr转换为doubledouble fabs(double x);
// 求双精度实数x的绝对值double pow(double x, double y);
// 求 x 的 y 次幂(次方)double round(double x);
// double四舍五入double ceil(double x);
// double向上取整数double floor(double x);
// double向下取整数double fmod(double x,double y);
// 求x/y整除后的双精度余数
// 把双精度val分解成整数部分和小数部分,整数部分存放在ip所指的变量中,返回小数部分。double modf(double val,double *ip);
使用floor函数。floor(x)返回的是小于或等于x的整数。
如: floor(10.5) == 10 floor(-10.5) == -11。
使用ceil函数,ceil(x)返回的是大于x的整数。
还有一些数据计算函数,如正弦、对数、指数等,实际开发中极少使用,大家要用的时候再查资料,我就不介绍了。
整数与浮点数的转换
在浮点数的取值范围内,整数转换为浮点数不会有精度的损失,浮点数转换为整数后,会丢弃小数位。