C语言float和double的区别是虽然都表示小数,不过它们的宽度不一样,或者说精度不一样,float是单精度,double是双精度。表示小数的范围不一样,double能表示的范围,比float大。double在内存中,占8个字节,float占4个字节。
c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%到20%。因此,C语言可以编写系统软件。
float是单精度类型,精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间 double是双精度类型,精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间 当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f 例如:float a=1.3; 则会提示不能将double转化成float 这成为窄型转化 如果要用float来修饰的话,则应该使用float a=1.3f 注意float是6位有效数字,第7位数字将会产生四舍五入 所以如果一个float变量 这样定义: float a=1.32344435; 则第7位将产生四舍五入(5及5以下的都将舍去)
C语言中,实型变量分为两类:单精度型和双精度型。
其类型说明符分别为:float,double。单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。实型变量说明的格式和书写规则与整型相同。关于这个问题,float能精确到小数点后两位。但是由于浮点数的精度问题,可能会出现精度误差。如果需要更高的精度,建议使用double或decimal。
如果需要一个小数,就用float或double,要看需要的小数的精度有多大,前者是4个字节的,所以精度相对没那么高,后者是8个字节的,精度肯定高一点 ”根据对精度的需求了,double比float精度高,但计算量如果太大就会导致性能有所下降,double当然有缺点,缺点就是它在储存时占了8个字节的空间,是float型的2倍。
所以如果是以节约空间为优化的编程时,能用float尽量用float型变量。
还没有评论,来说两句吧...