java 定义long和float为什么要加L和F?

默认数据类型

首先明确java中整数默认数据类型是int 浮点数默认数据类型是double

long要加L

long l = 10000000000;
System.out.println(l)

如图所示这个程序会报错,提示“整数过大”,long是占8个字节到2的63次方,此处为何回报错呢?
因为程序首先执行 “l = 10000000000“” 这部分代码,上面说过整数默认数据类型是int,int只能到2的31次方,所以会报错
因此我们把上面程序改为:

long l = 10000000000L;
System.out.println(l)

加了L以后 “l = 10000000000L”这里就不使用默认的int,而是long类型,
之后程序“long l = 10000000000L” 把long类型赋值给long类型也没有问题所以问题解决。

float要加F

float f = 1.11;
System.out.println(f);

此程序提示 报错:“不兼容的类型”,这是什么原因呢?
同样,这里先执行难“f=1.11”,上面提到浮点数默认数据类型是double,所以这里f默认是double类型,接下来执行“float f = 1.11;”,其实是有一个类型装换,把double数据类型转化成float类型,但是double类型精度是比float要高的,所以编译器不会自动转换,以免精度损失,继而报错。

float f = 1.11F;
System.out.println(f);

解决方法如图所示,定义时“ f = 1.11F”直接定义f为float类型,然后执行“float f = 1.11F;”就不会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值