C#中float与double的区别
C#中float与double有什么区别呢?搜索资料说其精密程度不一样,不过还是搞不懂,不是都是小数吗?为什么要有两个呢?还有就是,C#中,除了小数,整数,还可不可以有分...
C#中float与double有什么区别呢?搜索资料说其精密程度不一样,不过还是搞不懂,不是都是小数吗?为什么要有两个呢?还有就是,C#中,除了小数,整数,还可不可以有分数啊。比如说1/3,毕竟有些数是除不尽的嘛。呵呵~刚接触C#语言,很多不懂,大家指教下,谢谢!
展开
6个回答
展开全部
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以下的都将舍去)
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以下的都将舍去)
2013-03-31
展开全部
double是双精度数据,float保存16位,double保存32位……另外楼主提到的有double就足够,这个观点是不正确的哈。计算机对不同字节的数据运算速度也是不同,系统花销也是不一样的。之所以在double上,还存在float这个数据类型,就是为了让你根据你编程时数据的不同长度来进行数据类型选择,以便让你的程序能有更高的效率。如果按照你所说的存在double就可以不用float了,那么在int的基础上还有longint,那么也就是说有了longint就可以不用int了?很明显这个是不正确的。所以在编程的时候要根据你程序数据的特征选定合适的数据类型,这样才能保证数据准确性与运算的高效性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-31
展开全部
****C#中的float何double的区别***首先像你说的精密度上面有区别,打个比方,它们两个在用法上面的关系就像做算术题。一个问题只需要精确到小数点后10位,另一个则要精确到小数点后20位。在电脑里面10位的占用的资源比20位的明显要少很多。所以算普通小数的时候用float更节省系统资源。算精确度高的小数的时候可以用double提升精确度。还有语法上的区别,float在赋值的时候数字后面加f,*****分数问题***在C#里面没有分数类型的变量。但是有个%运算符号(读模)。可以用它来判断除尽没有10%1,除得尽,余0。7%6,除不尽,余1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float和doule说精度不同,你不懂,那说它们的取值范围不同你该懂了吧,float占四个字节,double占八个字节,还有decimal占十六个字节,分数说白了,还是小数,只不过很多分数是无限不循环的,比如说 float a=1/3f ,double b=1/3, decimal c=1/3m,同样是1/3但它们的取值是不一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询