中易网

C#中float与double的区别

答案:6  悬赏:20  
解决时间 2021-01-11 00:14
  • 提问者网友:容嬷嬷拿针来
  • 2021-01-10 11:42
C#中float与double的区别
最佳答案
  • 二级知识专家网友:長槍戰八方
  • 2021-01-10 12:55
主要是范围不一样,也就是精度不一样。精度过大,运算时间就长。所以能用float,就不用double,如果数值不多的话,就无所谓了,用哪个都行。
类型 比特数 有效数字 数值范围
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位。
全部回答
  • 1楼网友:我住北渡口
  • 2021-01-10 18:35
4个字节和8个字节
  • 2楼网友:玩世
  • 2021-01-10 17:23
float和doule说精度不同,你不懂,那说它们的取值范围不同你该懂了吧,float占四个字节,double占八个字节,还有decimal占十六个字节,分数说白了,还是小数,只不过很多分数是无限不循环的,比如说 float a=1/3f ,double b=1/3, decimal c=1/3m,同样是1/3但它们的取值是不一样的
  • 3楼网友:琴狂剑也妄
  • 2021-01-10 16:07
****C#中的float何double的区别***首先像你说的精密度上面有区别,打个比方,它们两个在用法上面的关系就像做算术题。一个问题只需要精确到小数点后10位,另一个则要精确到小数点后20位。在电脑里面10位的占用的资源比20位的明显要少很多。所以算普通小数的时候用float更节省系统资源。算精确度高的小数的时候可以用double提升精确度。还有语法上的区别,float在赋值的时候数字后面加f,*****分数问题***在C#里面没有分数类型的变量。但是有个%运算符号(读模)。可以用它来判断除尽没有10%1,除得尽,余0。7%6,除不尽,余1.
  • 4楼网友:上分大魔王
  • 2021-01-10 14:47
double是双精度数据,float保存16位,double保存32位……另外楼主提到的有double就足够,这个观点是不正确的哈。计算机对不同字节的数据运算速度也是不同,系统花销也是不一样的。之所以在double上,还存在float这个数据类型,就是为了让你根据你编程时数据的不同长度来进行数据类型选择,以便让你的程序能有更高的效率。如果按照你所说的存在double就可以不用float了,那么在int的基础上还有longint,那么也就是说有了longint就可以不用int了?很明显这个是不正确的。所以在编程的时候要根据你程序数据的特征选定合适的数据类型,这样才能保证数据准确性与运算的高效性。
  • 5楼网友:琴狂剑也妄
  • 2021-01-10 13:16
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以下的都将舍去)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息