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的整数。

还有一些数据计算函数,如正弦、对数、指数等,实际开发中极少使用,大家要用的时候再查资料,我就不介绍了。

整数与浮点数的转换

在浮点数的取值范围内,整数转换为浮点数不会有精度的损失,浮点数转换为整数后,会丢弃小数位。