C语言中的浮点数

一.浮点数

浮点数大致可以理解为是我们日常生活中运用的小数

二,浮点数的分类

浮点数可以分为单精度浮点数(float)以及双精度浮点数(double)

三.浮点数在C语言中的计算

如果是将定义成整数的数值进行运算,如下5/2,直接计算得到的结果为整数2;(没有四舍五入,直接去掉小数部分)

	int a= 5;
	int b= 2;
	printf("%d\n",(a/b));

如果需要对小数进行计算,就需要我们对数值进行新的类型定义

如程序:

	printf("请输入身高(英制计量):");
	double foot;
	double inch;
	double gao;
	scanf("%lf" "%lf",&foot,&inch); 
	printf("得到的公式升高%f米\n",(foot+(inch/12.0))*0.3048);

在这其中通过double定义了两个双精度浮点数foot inch

注意浮点数的输入和输出方式不同 输入时用的是%lf 输出时则是%f

C语言,比较两个浮点数(double类型)是否相等或大小通常不是直接通过等于号(==)或小于号(<)来进行的,因为浮点数计算存在精度问题。由于计算机内部是以二进制表示浮点数,所以有些非常接近的数在实际运算可能会有微小的差异导致比较结果错误。 为了精确地比较浮点数,你可以采用以下方法: 1. **`<` 和 `>` 操作符**:这两个操作符可以用于比较浮点数的大小,但是需要注意可能出现的精度误差。尽量避免使用它们进行严格的数值相等判断。 ```c if (a < b) { // a 小于 b } ``` 2. **`fabs()` 函数**:这个函数返回浮点数的绝对值,可以先将两个数转换为相同的正数再比较。 ```c #include <math.h> if (fabs(a - b) < FLOAT_EPSILON) { // FLOAT_EPSILON是一个很小的正数,如1e-7 // a 与 b 相当接近 } ``` 3. **`finite()` 函数**:虽然这个函数在C99标准已经被弃用,但在一些系统上可用,它检查浮点数是否有限(非无穷大或NaN)。如果需要排除异常值,可以用它辅助判断。 ```c #include <math.h> if (finite(a) && finite(b)) { if (a < b) { // a 小于 b } } ``` 4. **使用库函数**:C++11引入了 `<cmath>` 的 `std::isnan`, `std::isinf` 等函数,可以帮助更准确地处理NaN(Not-a-Number)和无穷大的情况。 ```c++ #include <cmath> if (!std::isnan(a) && !std::isnan(b) && !std::isinf(a) && !std::isinf(b)) { if (a < b) { // a 小于 b } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铅笔!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值