首页 > 试题广场 >

下面赋值语句中正确的是()

[单选题]

下面赋值语句中正确的是()

  • double d=5.3e12;
  • float f=11.1;
  • int i=0.0;
  • Double oD=3;
java中整型默认的是int,浮点默认的是double.
B: double类型的11.1 转成 float,是需要强制转换的
C: double类型的0.0 转成 int,也是需要强制转换的
D: int 转为 封装类型Double,是无法编译的
    Double oD = 3.0, 会把double类型的3.0自动装箱为Double,没有问题
发表于 2017-05-18 15:46:54 回复(16)
A:5.3e12表示5.3乘以10的12次方,正确
B:在Java中,如果你输入一个小数,系统默认的是double类型的,这个式子相当于 float f=double 11.1,明显错误,如果想要表达11.1为float类型的,需要在11.1末尾加一个f标识你输入的是float类型即可
C:0.0是小数,默认是double,不是int
D:Dbuble是基本类的封装类,不可直接赋值
发表于 2017-05-05 22:14:27 回复(16)
double d = 5.3e12; 相当于 5.3*10的12次方,科学计数法
double d = 3;  对  (自动转换类型)
Double d = 3; 错  (自动装箱的目标必须严格对应它拆箱后的类型)
Double d = 3.0;对 (自动装箱)

***自动装箱和类型的自动转换不能同时进行,这告诉我们偷一个懒可以,多了就过分了。****
***小数默认为double类型的,所以要用小数表示float的话要加上f或者F后缀;同理,整数默认为int型,用整数表示long的话需要加上l后者L后缀****
***占用字节空间少的类型可以向占用字节多的类型自动转换。反之则不行,需要强转确保用户明确精度丢失的风险****
编辑于 2019-09-29 10:54:46 回复(6)
A 科学计数法,double类型赋值给double,正确。
B 浮点数默认类型为double,大范围不能赋值给小范围(除非强转),错误。
C double不能赋值给int(理由同b),错误。
D int虽可以转换成double,但在类型转换时无法进行自动装箱,故错误。
发表于 2018-09-02 08:35:54 回复(3)
double oD=3;
如果这样写就对了

发表于 2017-05-04 21:35:39 回复(6)
A:考察1、基本数据类型范围,2、科学计数法的表示;
        1、double类型遵循IEEE754标准(具体自己查一下),约为10^-308~10^308和-10^-308~-10^308,所以本题在范围里
        2、科学计数法表示,在java中十进制与八进制的科学计数法与我们实际用的一样;
               注意:但是十六进制(0x)不一样,java的十六进制的科学计数法中指数不是用e,而是用p,即double d= 0x5.3p12;
                但本题为十进制,所以正确
B:考察1、基本类型的自动转换,2、float的声明;
                byte<short<int<long<float<double (注:char<int) 这些小到大可自动转换,大到小要强转(char只能转为int)
                整数默认为int,浮点数默认为double  ,而long要在后面加l或L,float要在后面加f或F,所以本题中float = double (未强转,所以错)
C、同B ,int = double (未强转,所以错)
D、考察包装类型的自动装包与自动拆包;
        包装类型只能对自己对应的基本类型进行自动装包与自动拆包,不会像基本数据类型一样自动转换,所以 Double = int (不是对应类型,不会自动装包) 如果是 Double d = 3.0 则正确;Float f= 3.5f 正确 

发表于 2018-05-17 21:09:57 回复(0)
选A
B,浮点型默认的类型是double,也就是说float f = 11.1(11.1是一个默认的浮点值,也就是double,double比float精度高,所以不能自动向下转型,所以要么改成float f = 11.1f 要么改成float f = (float) 11.1
C,不能自动向下转型的
D,说一下,基本数据类型的装箱,不提供自动向上转型。
发表于 2018-07-09 23:05:49 回复(0)
额,在C++中B也是对的哇
发表于 2019-05-06 16:47:03 回复(1)
注意Double b=3.0 没有问题 但是Double b=3就有问题了,Double不能像double一样 自动向上转换
发表于 2017-05-10 16:09:38 回复(1)
D Double是包装类型
发表于 2017-05-04 13:41:05 回复(2)
D选项要注意,这是Double,int 转为封装类型Double,肯定是错的,编译错误
只有Double oD = 3.0, 会把double类型的3.0自动装箱为Double,这才是可以的,要区分Double和double
发表于 2021-12-21 12:55:36 回复(0)
把Double当成double了
发表于 2022-01-12 12:17:45 回复(0)
第一次知道整形是不会被自动装箱成Double 的,有没有哪个大佬解释一下其中的原理
发表于 2018-07-17 15:17:54 回复(0)
你们是怎么在做题之前就知道这是java的
发表于 2017-09-07 23:46:45 回复(5)

自动装箱不提供向上装型

发表于 2019-05-23 00:28:40 回复(0)
对于A选项: double d=5.3e12;
float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,即float的指数范围为-127~128,而double的指数范围为-1023~1024,故此显然符合选项。
对于B选项float f=11.1;
右边没有带有任何标志的情况下为double类型,范围变小了,故错误。
对于C选项int i=0.0;
int类型不可能带有小数,除非强制转换。此问题的错误跟B选项的效果一样,故错误。
对于D选项Double oD=3;
Double是java中的一个类,并且其赋值为整数类型,两个不匹配,需要进行强制转换,或者赋值为3.0.故错误。
发表于 2019-03-20 16:57:04 回复(0)
对于D选项:
可以这样写
Double oD = (double) 3;
Double oD = Double.valueOf(3);
Double oD = 3.0;
但不能这样写
Double oD=3;



发表于 2023-05-26 22:31:47 回复(0)
封装类型Double Integer等 。如果直接赋值,如Integer a = 1,Double d = 0.3,是可以将数值自动装箱到封装类型的。但d答案中的Double oD = 3
,3是整型,装箱操作不提供向上转型,故d不对
发表于 2019-01-17 20:48:05 回复(0)
废话不多说,用实践来说话

发表于 2024-03-25 11:29:11 回复(0)
java 默认规则也是有限制的
发表于 2024-02-28 15:06:15 回复(0)