java double 赋值语句_Java中float、double、long类型变量赋值添加f、d、L尾缀问题
展开
1. 添加尾缀说明
我们知道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语法规定,不添加尾缀很容易引起编译器报错,并且程序可读性也会变差。
2. 不添加尾缀也不会报错的情况
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类型变量
1
2
3. 总结
所以,当Java中遇到这三种类型变量需要赋直接量时候,最好都添加上相应的尾缀。这样不仅会防止编译器报错,也会增加程序的可读性。
但是下面这种情况就算添加尾缀也是错的,因为尾缀仅是为了告诉虚拟机该直接数属于什么数据类型,而不能实现数据类型强制转换。
long lNum = 1.2L; //错误,double类型数据不能直接赋值给long类型
long lNew = (long)1.2; //正确,double类型数据强制转换为long类型
————————————————
版权声明:本文为CSDN博主「~ 知至~」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/S_999999/article/details/85943791
java double 赋值语句_Java中float、double、long类型变量赋值添加f、d、L尾缀问题相关推荐
- java double 计算_Java中的Double类型计算
一.问题的提出: 如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.out. ...
- java中double类型_Java中的Double类型计算
1 package com.wetalk.wbs.bas.util; 2 3 import java.io.Serializable; 4 import java.math.BigDecimal; 5 ...
- java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....
Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...
- double取值范围 java_Java中float/double取值范围与精度
Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...
- float 范围 java_Java中float/double取值范围与精度
Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...
- java float是_java中float是什么意思
Java中float的意思"浮动",代表的是一种浮点数数据类型,它内存分配4个字节,占32位,范围从"10^-38"到"10^38"和&qu ...
- mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!
作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...
- mysql float 怎么设置长度_MySQL中float double decimal区别总结
作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! 下表中规划了每个浮点类型的存储大小和范围: 类型大小范围(有符号)范围(无符号)用途fl ...
- java 精确 计算_java中进行高精度精准计算
今天在做接口传保费的时候出现了一个奇怪的问题,double类型保费变成了一大长串的非精准保费,甚至奇怪,难道是java的bug?最后通过度娘找到了答案 话不多说,先看如下代码public final ...
最新文章
- 观点 | 商汤科技联合创始人林达华:深度学习遭遇瓶颈,未来之路需要新的思考
- Redis详解(一)------ redis的简介与安装
- 485有时候从机接收指令没反应_原创案例丨秒杀一辆12年爱唯欧启动无反应
- 数据预处理代码分享——机器学习与数据挖掘 1
- Spring原始注解和新注解(使用注解代替xml配置文件)
- 使用try-with-resources替代try finally释放资源
- sql backup database备份d盘_SQL数据库备份概述
- Java 将File转换为MultipartFile类型
- SPEC-RFC3261总述
- cisco 基础配置命令中文解析 1
- ios官方菜单项目重点剖析附项目源码
- my docker note
- win7旗舰版梦幻主题补丁~完美你的桌面
- matlab刚度矩阵求逆,ANSYS求结构整体刚度矩阵逆矩阵APDL命令流
- 自然语言处理方面的顶会
- 七周成为数据分析师 | 数据库
- Lambda和Stream流
- 论文公式编辑比较麻烦,试试截图快速识别并编辑公式!
- big endian和little endian 的区别 ,BOOST_BIG_ENDIAN
- PMM使用Grafana告警