当前位置: 首页 > news >正文

C++中,float double区别

在VC++6.0平台,一定记住

float:有效数字位数7位。

double:有效数字位数7位。

小数的时候小数点占一位;

 

类型               比特数      有效数字                          数值范围 
       float                  32                  6-7                  -3.4*10(-38)~3.4*10(38) 
      double               64               15-16              -1.7*10(-308)~1.7*10(308) 
     long double      128              18-19             -1.2*10(-4932)~1.2*10(4932) 
简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件) 
还有,有个例子:在C和C++中,如下赋值语句 
float a=0.1; 
编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float ' 
原因: 
在C/C++中(也不知道是不是就在VC++中这样),上述语句等号右边0.1,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning,一般改成0.1f就没事了。 
本人通常的做法,经常使用double,而不喜欢使用float。

 

上代码吧:

#include <iostream>
using namespace std;
 
int main ()
{
   // 数字定义
   short  s;
   int    i;
   long   l;
   float  f;
   double d;
   
   // 数字赋值
   s = 10;      
   i = 1000;    
   l = 1000000; 
   f = 310.12347121;  
   d = 310.12347121;
   
   // 数字输出
   cout << "short  s :" << s << endl;
   cout << "int    i :" << i << endl;
   cout << "long   l :" << l << endl;
   cout << "float  f :" << f << endl;
   cout << "double d :" << d << endl;
 
   return 0;
}

结果:

short  s :10
int    i :1000
long   l :1000000
float  f :310.123
double d :310.123

#include <iostream>
using namespace std;
int main()
{
    
 short  s;
   int    i;
   long   l;
   float  f;
   double d;
   
   // 数字赋值
   s = 10.001;      
   i = 10.001;    
   l = 10.904554544501; 
   f = 10.04554544501;  
   d = 10.04543546565401;
   
   // 数字输出
   cout << "short  s :" << s << endl;
   cout << "int    i :" << i << endl;
   cout << "long   l :" << l << endl;
   cout << "float  f :" << f << endl;
   cout << "double d :" << d << endl;
    return 0;
}

结果:

short  s :10
int    i :10
long   l :10
float  f :10.0455
double d :10.0454

 

#include <iostream>
using namespace std;
 
int main ()
{
   // 数字定义
   short  s;
   int    i;
   long   l;
   float  f;
   double d;
   
   // 数字赋值
   s = 10;      
   i = 1000;    
   l = 1000000; 
   f = 230.47;  
   d = 30949.374;
   
   // 数字输出
   cout << "short  s :" << s << endl;
   cout << "int    i :" << i << endl;
   cout << "long   l :" << l << endl;
   cout << "float  f :" << f << endl;
   cout << "double d :" << d << endl;
 
   return 0;
}

结果:

short  s :10
int    i :1000
long   l :1000000
float  f :230.47
double d :30949.4

 

相关文章:

  • setw()函数使用,#include iomanip ——using std::setw;
  • 简单理解数组指针和指针数组
  • 有关指针的基础知识(指针定义和使用) 详解二维数组与指针、指针数组、数组指针
  • 结果真的不是最重要的,过程,体验这个过程,并且持续下去
  • Android Studio Gradle文件解释其作用
  • gradle目录以及sdk目录, ndroid:attr/colorError not found., mupdf使用,api com.artifex.mupdf:fit
  • 二叉排序树和堆的区别
  • 线性代数齐次方程求解与非齐次方程的解的关系
  • 行列式值的意义以及与秩的关系还有线性相关线性无关还有极大无关组的他们之间的联系。
  • 特征值和特征向量的由来 特征值和特征向量定义: 特征值和特征向量的几何意义 特征值和特征向量的应用
  • 彻底理解线性代数; 特征值,特征向量; 线性代数的本质 矩阵的逆矩阵的实质: 行列式值为0的实质: Essense Of Linear Algebra的理解
  • 线性代数的本质: 矩阵: 矩阵的逆矩阵: 线性代数基础知识
  • c++中什么是引用,什么是指针。
  • 分数转化为整int,int a=2/3,是0; int  c=7/5;是1;不存在四舍五入。
  • 构造函数后面加冒号,这傻逼玩意,有病吧
  • 0基础学习移动端适配
  • 2017年终总结、随想
  • C++类中的特殊成员函数
  • CSS居中完全指南——构建CSS居中决策树
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JAVA并发编程--1.基础概念
  • Java程序员幽默爆笑锦集
  • Redux 中间件分析
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • windows-nginx-https-本地配置
  • 日剧·日综资源集合(建议收藏)
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 微服务核心架构梳理
  • 一份游戏开发学习路线
  • 赢得Docker挑战最佳实践
  • 最简单的无缝轮播
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​用户画像从0到100的构建思路
  • $.ajax()方法详解
  • (floyd+补集) poj 3275
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (算法二)滑动窗口
  • (转)Google的Objective-C编码规范
  • (转载)Linux 多线程条件变量同步
  • 、写入Shellcode到注册表上线
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core 连接数据库,通过数据库生成Modell
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET和.COM和.CN域名区别
  • .NET开发者必备的11款免费工具
  • .NET开源项目介绍及资源推荐:数据持久层
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • /var/log/cvslog 太大
  • @GetMapping和@RequestMapping的区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [ACM] hdu 1201 18岁生日