实际开发中使用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转换为double
double?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的整数。
还有一些数据计算函数,如正弦、对数、指数等,实际开发中极少使用,大家要用的时候再查资料,我就不介绍了。
整数与浮点数的转换
在浮点数的取值范围内,整数转换为浮点数不会有精度的损失,浮点数转换为整数后,会丢弃小数位。
|