长整型变量定义时加L为什么会无效?

长整型变量定义时加L为什么会无效?

		//定义一个长整型变量var,值为190000000,并输出
		long var = 1.9e8L;
		System.out.println("var="+var);

为什么必须要强制类型转换呢,加L为什么不行呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
慕神小小 2020-09-14 14:03:21

同学你好,这里的1.9e8会被当成double类的值,所以需要强制转换为long类型,如:long var=(long) 1.9e8;这里建议同学直接赋long类型值即可,如:long var = 19000000L;如果我的回答解决了你的疑惑,请采纳。


好帮手慕小班 2020-09-13 10:20:17

同学你好,1.9e8默认是用科学计数法表示的double类型的数据,如果要转为long类型,需要使用强转将double类型强转为long。

参考这个例子来理解下:

http://img1.sycdn.imooc.com//climg/5f5d816609f4753606800237.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小脸 2020-09-10 10:30:05

同学你好,这里的1.9e8会被当成double类的值,所以需要强制转换为long类型,如:long var=(long) 1.9e8;这里建议同学直接赋long类型值即可,如:long var = 19000000L;

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 提问者 慕数据0164170 #1
    那么1.9eL不行吗?非要(long)1.9e8吗?
    2020-09-10 23:55:56
  • 好帮手慕小脸 回复 提问者 慕数据0164170 #2
    同学你好,当数值为long类型时,在数值后添加l或L,这里1.9e8是double类型,所以使用1.9eL是不行的。 祝学习愉快~
    2020-09-11 09:53:18
  • 提问者 慕数据0164170 回复 好帮手慕小脸 #3
    1.9e8相当于190000000,那么long var = 190000000L可以,为什么long var = 1.9e8L不行呢?
    2020-09-12 22:50:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师