java中float和double的区别...

 我来答
fanchangyong08
推荐于2018-03-13 · TA获得超过660个赞
知道小有建树答主
回答量:1096
采纳率:0%
帮助的人:0
展开全部
精度 不同,占的字节数也不同,

一般我喜欢用double的,举个例子,
float a=5.0;这样写会出错,因为float型变量强制后面用f结尾,也就是这样:
float a=5.0f;

double a=5.0;这样就不会有错,
不过性能方面可能会差一些,
小程序是没什么分别的.
wanpg
2008-09-14 · TA获得超过260个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:164万
展开全部
doubel是32位,float是16位,double表示的范围和精度都比float大,java默认的小数声明是double,
double d=4.0,
而float则必须如下声明,
float f=4.of,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷希周庄雅
2020-06-18 · TA获得超过3726个赞
知道大有可为答主
回答量:3087
采纳率:24%
帮助的人:380万
展开全部
  1、内存结构
  float和double的范围是由指数的位数来决定的。
  float的指数位有8位,而double的指数位有11位,分布如下:
  float:
  1bit(符号位)
8bits(指数位)
23bits(尾数位)
  double:
  1bit(符号位)
11bits(指数位)
52bits(尾数位)
  于是,float的指数范围为-128~+127,而double的指数范围为-1024~+1023,并且指数位是按补码的形式来划分的。
  其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
  float的范围为-2^128
~
+2^127,也即-3.40E+38
~
+3.40E+38;double的范围为-2^1024
~
+2^1023,也即-1.79E+308
~
+1.79E+308。
  2.
精度
  float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
  float:2^23
=
8388608,一共七位,由于最左为1的一位省略了,这意味着最多能表示8位数:
2*8388608
=
16777216
。有8位有效数字,但绝对能保证的为7位,也即
  float的精度为7~8位有效数字
  double:2^52
=
4503599627370496,一共16位,同理,
  double的精度为16~17位
  之所以不能用f1==f2来判断两个数相等,是因为虽然f1和f2在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错误的判断两个数相等!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ef4dcb3
2008-09-13 · TA获得超过223个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:350万
展开全部
单和双的区别,double支持的浮点数范围比较大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2007冰河
2008-09-14 · 超过16用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:0
展开全部
double有问题,建议你最好用float.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式