C语言 浮点数

本文主要讨论C语言中浮点数的使用,推荐在实际开发中使用`double`而非`float`。介绍了浮点数的输出格式,如`%lf`用于`double`,并强调了不同编译器可能存在的差异。还提到了`%m.nlf`格式化输出以控制小数位数。此外,介绍了`floor`和`ceil`函数,用于取浮点数的下限和上限整数值,而整数与浮点数之间的转换可能涉及精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际开发中使用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的整数。

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

整数与浮点数的转换

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值