Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【原创】JAVA数值类型强制类型转换扩展

【原创】JAVA数值类型强制类型转换扩展

作者头像
零点
发布于 2023-10-18 08:49:43
发布于 2023-10-18 08:49:43
18400
代码可运行
举报
文章被收录于专栏:微科技微科技
运行总次数:0
代码可运行

前言

 经常需要将一些数值类型转换为另外一种数值类型。下图给出了数值类型之间的合法转换。

数值型数据类型

 在上图中有6个实线箭头,表示无信息丢失的转换;另外有3个虚线箭头,表示可能有精度损失的转换。例如,123456789是一个大整数,它包含的位数多于float类型所能表示的位数,将这个整数转换为float类型时,数量级时正确的,但时会损失一些精度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int n = 123456789;
float f = n; //f 的值为1.234567892EB

 当用一个二元运算符连接两个值时(例如 n+f,n是整数,f是浮点数),先要将两个操作数转换为同一类型,然后在进行计算,通常为小类型转换为大类型。(如浮点型和整数进行连接时,最终的返回值为浮点型)。

 其中七大数值型数据类型分别为:   整数型:byte、short、int、long   浮点型:float(单精度)、doubles(双精度)   字符型:char  各数值型占用内存大小:   1byte = 8bit   1short = 2byte = 16bit   1int = 4byte = 2short = 32bit   1long = 8byte = 4short = 2int = 64bit   1float = 4byte = 32bit   1double = 8byte = 2float = 64bit   1char = 2byte = 16bit

 数值型数据进行拼接时的规则:

  • 如果两个操作数中有一个是double类型,另外一个操作数就会转换为double类型。
  • 否则,如果其中一个操作数是float类型,另外一个操作数就会转换为float类型。
  • 否则,如果其中一个操作数是long类型,另外一个操作数将会转换为long类型。
  • 否则,两个操作数都会被转换为int类型。

数值型强制类型转换

 在必要的时候,int类型的值会自动转换为double类型。但另一方面,有时我们也需要将double类型转换成int类型。在Java中允许这种数据类型的转换,不过可能会丢失一些信息。这种转换要通过强制类型转换来实现,强制类型转换的语法格式是在原括号中指定想要转换的目标类型,后面紧跟需要转换的变量名或者常量。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 double x = 9.997;
 int nx = (int) x;  //nx的值为9

 这样,变量nx的值为9,因为强制类型转换通过截取小数部分将浮点值转换为整型。如果想将一个浮点型转换为整型时进行舍入,可以使用 Math.round() 方法来实现,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 double x = 9.997;
 int nx = (int) Math.round(x);  // nx的值为10

 调用round()方法时,仍需强制类型(int)转换,原因是round()方法返回的是一个long类型,由于存在信息丢失的可能性,所以只有通过一个显式的强制类型转换才能将一个long类型值赋值给int类型的变量。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年07月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java入门系列-05-数据类型和类型转换
在上一篇文章中我们学会了如何使用变量,像这样存储一个整数 int age=10;,可以在开发工具中编写一行这样的代码 int age=10.5; 就会发现开发工具报错了,是因为变量中的数据类型也是不能随便用的。
享智同行
2019/05/15
5920
Java入门系列-05-数据类型和类型转换
2.2 C++强制类型转换
在C++的表达式中,不同的数据类型会自动地转换类型进行运算,但有的时候也需要程序员自己进行强制类型转换,将某个表达式转换成自己所需要的数据类型。
小林C语言
2020/10/30
7360
Java之——自动类型提升、强制类型转换
Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性
CODER-V
2023/03/04
1K0
Java之——自动类型提升、强制类型转换
Java类型转换基本规则
1、基本数据类型的转换是指由系统根据转换规则自动完成,不需要程序员明确地声明不同数据类型之间的转换。转换在编译器执行,而不是等到运行期再执行。
用户7886150
2021/04/27
1K0
b代码构成6-数据类型
用户7865723
2023/10/18
2840
【Java篇】数据类型与变量:窥见程序的天地万象
在本篇文章中,我们将详细介绍 Java 中的数据类型和变量。这些是 Java 编程的基石,掌握它们对于编写正确、高效的 Java 程序至关重要。
半截诗
2025/03/10
970
C++类型转换几种情况
1.将较大的浮点型转换为较小的浮点类型,精度降低(如果对精度不理解请看我的C++第一篇),值可能会超出目标类型的取值范围,这种情况下的值是不确定的。
花狗Fdog
2020/10/28
2.3K0
C++类型转换几种情况
java基础(二):变量和数据类型
实例变量(成员变量): 方法外部、类的内部定义的变量 如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0 ,布尔型默认是false)
Vincent-yuan
2020/06/02
5840
java基础(二):变量和数据类型
JAVA 第二天 基本数据类型
在栈中可以直接分配内存的数据是基本数据类型。引用数据类型:数据的引用在栈中,但他的对象在堆中。 基本数据类型,小可转大,大转小会失去精度 第一类:逻辑型boolean 第二类:文本型char 第三类:整数型(byte、short、int、long) 第四类:浮点型(float、double) 整型有byte short int long char,分别用8、16、32、64、16bits表示。有些地方可能不会把char列入整型范畴,但本质上char类型是int的一个子集。 byte short int lo
拾点阳光
2018/05/11
6500
Java基础(7)-Java数据类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
joshua317
2021/12/20
2630
Java基础知识-基本数据类型相互转型
本文主要介绍了Java中的基本数据类型及其转换,包括整数、浮点数、字符和布尔类型。同时,还讨论了各种数据类型之间的转换方式,以及需要注意的精度损失问题。此外,还介绍了字符和其他数据类型的转换方法。
林老师带你学编程
2018/01/04
6690
Java基础知识-基本数据类型相互转型
【Java 基础篇】Java 类型转换
在Java编程中,类型转换是一种将一个数据类型转换为另一个数据类型的操作。类型转换可以发生在原始数据类型之间,也可以在引用数据类型之间进行。本篇博客将详细介绍Java中的类型转换,包括隐式类型转换和显式类型转换,并提供相关的代码示例。
繁依Fanyi
2023/10/12
6480
【Java】数据类型与变量详解!!!
其中8bit=1Byte 1KB=1024Byte 1MB=1024KB 1GB=1024MB
喜欢做梦
2024/11/25
1210
【Java】数据类型与变量详解!!!
C语言编程—强制类型转换
强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:
芯动大师
2023/10/14
3320
C语言编程—强制类型转换
零基础学Java(3)运算符
在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。整数的求余操作用%表示。例如,15/2=7,15%2=1,15.0/2=7.5 需要注意,整数被0除将虎产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
全栈程序员站长
2022/09/16
3130
零基础学Java(3)运算符
深入理解 Java 基本数据类型
一般情况下,定义了某数据类型的变量,就不能再随意转换。但是 JAVA 允许用户对基本类型做有限度的类型转换。
静默虚空
2019/05/25
1.1K0
【揭秘】C语言类型转换时发生了什么?
在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统,我们常用的算术类型包括两种类型:整数类型和浮点类型。那么相互之间具体是怎么转化的呢?
李肖遥
2020/07/21
1.2K0
【揭秘】C语言类型转换时发生了什么?
Java基础:数值类型转换、强制类型转换
数值类型之间的转换,在小数值往大数值转换时,不会发生精度的损失。在小数值往大数值转换时有可能发生精度的损失。
呆呆
2021/10/04
2.4K0
Python黑帽编程2.2 数值类型
Python黑帽编程2.2 数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型、长整型、布尔、双精度浮点、十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区别。 Python中的数值类型都是不可变类型,意味着创建、修改数字的值,都会产生新的对象,当然这是幕后的操作,编程过程中大可不必理会。 2.2.1 标准整型和长整型 标准整型等价于C中的有符号长整型(long),与系统的最大整型一致(如32位机器上的整型是32位,64位机器上的整型是64位),可以表示的整数范围
用户1631416
2018/04/12
2.1K0
Python黑帽编程2.2 数值类型
C语言的数据的强制类型转换
       强制类型转换算是C语言中常见常考的一项内容,如对于类型处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需人工干预,称这种转换为自动类型转换;而有些类型转换需要编程者显式指定,通常,把这种类型转换称为强制类型转换
Twcat_tree
2022/11/30
1.2K0
C语言的数据的强制类型转换
相关推荐
Java入门系列-05-数据类型和类型转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验