零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
一.float和double简介
不管是 C
或者 C++
开发,在做 float
和 double
相互转换之前,我们首先需要知道 float
和 double
的区别,在文章《float
和 double
的区别》和 《数据类型/变量类型》 中我们有做详细的讲解:
1.float(单精度)
float
整数部分取值范围:能表达式万亿级别,已经够大了,实际开发完全够用;float
小数部分取值范围:最多只能精确到小数点后6
位;
2.double(双精度)
double
整数部分取值范围:比float
更大,脑补就行了…;double
小数部分取值范围:最多只能精确到小数点后15
位;
二.判断 float / double 相等
用 ”==” 来比较两个
double
应该相等的类型,返回真值完全是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可。我们在判断浮点数相等时,推荐用范围来确定,若
x
在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float
和double
各有不同;
比如要判断浮点数 float
变量 A
和 B
是否相等,示例代码如下:
//float A = ??
//float B = ??
float x = A – B;
const float EPSINON = 0.00001;
if ((x >= - EPSINON)&& (x <= EPSINON)
printf("A 与 B 相等\n");
else
printf("A 与 B 不相等\n");
根据上面分析建议在系统开发过程中设计到字符转换建议采用 double
类型,精度设置为 %.8lf
即可,在比较浮点数,建议 EPSINON
= 0.00000001
三.猜你喜欢
- C语言 数组下标越界和内存溢出区别
- C语言 使用指针遍历数组
- C语言 指针和数组区别
- C语言 指针数组和数组指针区别
- C语言 野指针
- C语言 函数值传递和址传递
- C语言 函数不定长参数
- C语言 函数指针
- C语言 指针函数
- C语言 回调函数 callback
- C语言 #pragma once
- C语言 #include <> 与 #include “” 区别
- C语言 const 修饰函数参数
- C语言 const 和 define 区别
- C语言 #运算符
- C语言 ##运算符
- C语言 __VA_ARGS__
- C语言 ##__VA_ARGS__
- C语言 函数不定长参数 ##__VA_ARGS__经典案例
- C语言 va_start / va_end / va_arg 自定义 printf 函数
- C语言 main 函数
- C语言 main 函数参数 main(int argc, char *argv[])
- C语言 局部变量
- C语言 全局变量
- C语言 全局变量和局部变量区别
- C语言 static
- C语言 extern
- C/C++ Unicode 和多字节区别
- C/C++ wprintf 输出中文乱码
- C/C++ char 和 wchar_t 相互转换
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容