展开

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尾缀问题相关推荐

  1. java double 计算_Java中的Double类型计算

    一.问题的提出: 如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.out. ...

  2. java中double类型_Java中的Double类型计算

    1 package com.wetalk.wbs.bas.util; 2 3 import java.io.Serializable; 4 import java.math.BigDecimal; 5 ...

  3. java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....

    Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...

  4. double取值范围 java_Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

  5. float 范围 java_Java中float/double取值范围与精度

    Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...

  6. java float是_java中float是什么意思

    Java中float的意思"浮动",代表的是一种浮点数数据类型,它内存分配4个字节,占32位,范围从"10^-38"到"10^38"和&qu ...

  7. mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...

  8. mysql float 怎么设置长度_MySQL中float double decimal区别总结

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! 下表中规划了每个浮点类型的存储大小和范围: 类型大小范围(有符号)范围(无符号)用途fl ...

  9. java 精确 计算_java中进行高精度精准计算

    今天在做接口传保费的时候出现了一个奇怪的问题,double类型保费变成了一大长串的非精准保费,甚至奇怪,难道是java的bug?最后通过度娘找到了答案 话不多说,先看如下代码public final ...

最新文章

  1. 观点 | 商汤科技联合创始人林达华:深度学习遭遇瓶颈,未来之路需要新的思考
  2. Redis详解(一)------ redis的简介与安装
  3. 485有时候从机接收指令没反应_原创案例丨秒杀一辆12年爱唯欧启动无反应
  4. 数据预处理代码分享——机器学习与数据挖掘 1
  5. Spring原始注解和新注解(使用注解代替xml配置文件)
  6. 使用try-with-resources替代try finally释放资源
  7. sql backup database备份d盘_SQL数据库备份概述
  8. Java 将File转换为MultipartFile类型
  9. SPEC-RFC3261总述
  10. cisco 基础配置命令中文解析 1
  11. ios官方菜单项目重点剖析附项目源码
  12. my docker note
  13. win7旗舰版梦幻主题补丁~完美你的桌面
  14. matlab刚度矩阵求逆,ANSYS求结构整体刚度矩阵逆矩阵APDL命令流
  15. 自然语言处理方面的顶会
  16. 七周成为数据分析师 | 数据库
  17. Lambda和Stream流
  18. 论文公式编辑比较麻烦,试试截图快速识别并编辑公式!
  19. big endian和little endian 的区别 ,BOOST_BIG_ENDIAN
  20. PMM使用Grafana告警

热门文章

  1. 解決svchost.exe 100%的問題 (真的中毒了)
  2. 印度进口战斗机想退货,因系统无法识别自家口音
  3. java中实现多态的机制
  4. stp文件怎么变文件夹_stp文件怎么打开?
  5. 单片机外围模块漫谈之三,CAN总线
  6. 视频想让它观看一段时间不能看了或者消失怎么办?
  7. 写于 2016 年末
  8. 三只松鼠、盐津铺子:战略相似,命运迥异
  9. python提供服务_利用Python打造短链服务(一)
  10. 利用freemarker模板导出复杂excel可带图片