Python 官方文档:入门教程 => 点击学习
目录Java float 与 double 的区别1、float是单精度浮点数2、java中默认声明的小数是double类型的3、对编程人员来而Java float、double、l
内存分配4个字节,占32位,有效小数位6-7位
double是双精度浮点数,内存分配8个字节,占64位,有效小数位15位
如double d=4.0
如果声明: float x = 4.0则会报错,需要如下写法:float x = 4.0f或者float x = (float)4.0
其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义
double 和 float 的区别是double精度高,但double消耗内存是float的两倍,且double的运算速度较float稍慢。
我们知道Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。
其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。
例如:
long lNum = 1234L;
float fNum = 1.23f;
double dNum = 1.23D;
这是Java语法规定,不添加尾缀很容易引起编译器报错,并且程序可读性也会变差。
Java语言中,整数直接量(例如:1、2、10等),JVM虚拟机是默认为int类型数据的。所以,当整数直接量赋给long、float或者double,而不添加尾缀,虚拟机也会直接将int类型数据自动转换为对应类型然后赋值。因为数据长度短的转换为长的并不会造成数据丢失,所以默认可以自动转换。
例如:
long lNum = 5; //不报错,因为int自动转换为long类型,不会报错
float fNum = 7; //不报错,因为int自动转换为float类型,不会报错
double dNum = 10; //同上
但是,当浮点直接量(例如:1.2等),JVM虚拟机默认为double类型,如果直接赋值给float就会引起编译器报错。
float fNum = 1.2; //报错,因为1.2虚拟机是默认为double类型,不能直接赋值给float类型变量
float fNew = 1.3f;//正确,因为尾缀添加了f,即告诉了虚拟机1.3属于float类型变量
所以,当Java中遇到这三种类型变量需要赋直接量时候,最好都添加上相应的尾缀。这样不仅会防止编译器报错,也会增加程序的可读性。
但是下面这种情况就算添加尾缀也是错的,因为尾缀仅是为了告诉虚拟机该直接数属于什么数据类型,而不能实现数据类型强制转换。
long lNum = 1.2L; //错误,double类型数据不能直接赋值给long类型
long lNew = (long)1.2; //正确,double类型数据强制转换为long类型
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: java中用float时,数字后面加f,这样是为什么你知道吗
本文链接: https://lsjlt.com/news/134625.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0