八、数据类型转换

2023-09-21 14:53:16

——————————————————————————————————————————————————

1.数据类型转换

类型转换是将一个值从一种类型更改为另一种类型的过程。例如:可以将String类型的数据"457"转换为数值型,也可以将任意的数据转换为String类型。

如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。

数据类型转换有两种方式,即隐式转换与显式转换。

——————————————————————————————————————————————————

1.1.隐式类型转换

从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换被称为隐式转换。

下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序为:

byte < short < int < long <float < double

例:可以将int型变量直接赋值给float型变量,此时int型变量将隐式转换成float型变量。

   int x = 50;            //声明int型变量x
   float y = x;           //将X赋值给y,y的值为50.0

隐式转换也要遵循一定的规则来解决在什么情况下将哪种类型的数据转换成另一种类型的数据。

在这里插入图片描述

例:使用隐式转换提升数值的精度。

在项目中创建类Conver,在主方法中创建不同数值型的变量,实现将各变量隐式转换。

在这里插入图片描述

在这里插入图片描述

要理解类型转换,读者可以这么想象,大脑前面是一片内存,源和目标分别是两个大小不同的内存块(由变量及数据的类型来决定),将源数据赋值给目标内存的过程,就是用目标内存块尽可能多地套取源内存中的数据。

——————————————————————————————————————————————————

1.2.显式类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。语法如下:

   (类型名) 要转换的值

例如将高精度数字转换为低精度数字。代码如下:

   int a = (int)45.23;         //此时输出a的值为45
   long y = (long)456.6F;      //此时输出y的值为456
   int b = (int) d";           //此时输出b的值为100

执行显式类型转换时,可能会导致精度损失。除boolean类型外,其他基本类型都能以显式类型转换的方法实现转换。

注意:当把整数赋值给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。

   byte b = (byte)129;

——————————————————————————————————————————————————

1.3.训练1

输出连续的英文字母 使用char型声明’a’~’g’,然后输出它们相加后的结果。

在这里插入图片描述

在这里插入图片描述

——————————————————————————————————————————————————

1.4.训练2

货车装箱子 一辆货车运输箱子,载货区宽2米、长4米,一个箱子宽1.5米、长1.5米,请问载货区一层可以放多少个箱子?

载货区长度除以箱子长。
载货区宽度除以箱子宽。
除后取整数,两者相乘。

在这里插入图片描述

在这里插入图片描述

更多推荐

家居行业如何借助AI营销数智化转型?《2023 家居行业AI营销第一课(重庆站)》给你答案

商务部将2023年定为“消费提振年”。作为仅次于汽车消费的家庭第二大消费支出,家居产业的高质量发展与扩大内需提振消费息息相关。随着今年利好政策不断发布,家居建材行业的市场环境及消费潜力得到大幅度改善。随着ChatGPT等新技术的出现与消费需求升级的趋势,近年来,家居建材行业数智化转型趋势越来越明显,家居行业的品牌营销也

基于SSM+Vue的网络教学平台的设计与实现的设计与实现

末尾获取源码开发语言:JavaJava开发工具:JDK1.8后端框架:SSM前端:采用Vue技术开发数据库:MySQL5.7和Navicat管理工具结合服务器:Tomcat8.5开发软件:IDEA/Eclipse是否Maven项目:是目录一、项目简介二、系统功能三、系统项目截图学生功能模块的实现管理员功能模块的实现教师

华纳云:Ubuntu下开启php调试模式报错如何解决

开启PHP调试模式时出现错误通常是由于PHP代码中的问题引起的。调试模式有助于发现和修复这些问题。以下是解决开启PHP调试模式时可能遇到的一些常见问题以及解决方法:错误报告级别设置不正确:PHP有不同的错误报告级别,开启调试模式时,建议将错误报告级别设置为最高,以捕获所有错误。您可以在PHP配置文件(php.ini)中

半导体行业如何在跨网数据交换时保证核心数据是安全的?

半导体行业是高科技产业的核心,也是国家战略的重点领域。半导体产业涉及到芯片设计、制造、封装、测试等多个环节,每个环节都需要大量的数据支撑和交换。半导体企业的核心数据不仅包括技术方案、设计图纸、生产参数等,还包括市场分析、客户信息、合作协议等。这些数据对于半导体企业的竞争力和发展至关重要,一旦泄露或损坏,将会给企业带来巨

【C++】bitset介绍与用法讲解

今日写csp,看大佬的题解中出现了bitset,以前有印象但没学,所以赶快去OI-wiki上补一下,并记录于此std::bitset是标准库中的一个存储0/1的大小不可变容器。严格来讲,它并不属于STL。TheC++standardlibraryprovidessomespecialcontainerclasses,t

Python绘制X-bar图和R图 | 统计过程控制SPC

X-bar图和R图是用于统计过程控制(SPC)的两种常用工具,用于监测过程的平均值和范围(变异性)。这些图有助于识别过程中的变化和异常,以便及时采取纠正措施。**X-bar图(平均值控制图)**显示了一系列样本的平均值,用于监测过程的平均值是否保持在可接受的范围内。X-bar图通常由以下几个要素组成:样本平均值:每个样

线程池的基本理解以及使用

首先线程池是一种管理和复用线程的机制,它可以用来提高多线程编程的效率和性能。线程池的概念:线程池是一种线程管理的机制,它通常由一个线程池管理器(ThreadPoolExecutor)和一组线程组成。线程池管理器负责创建、管理和调度线程。当任务到达时,线程池会从线程池中预先创建的线程中选一个来执行任务,如果没有空闲线程,

微调大型语言模型(一):为什么要微调(Why finetune)?

今天我们来学习Deeplearning.ai的在线课程微调大型语言模型(一)的第一课:为什么要微调(Whyfinetune)。我们知道像GPT-3.5这样的大型语言模型(LLM)它所学到的知识截止到2021年9月,那么如果我们向ChatGPT询问2022年以后发生的事情,它可能会产生“幻觉”从而给出错误的答案,再比如我

HTTP协议的请求方式有哪些

HTTP请求方式是指客户端向服务器发送请求时所使用的方法,常用的请求方式有GET、POST、PUT、DELETE、HEAD、OPTIONS等。这些请求方式各自有着不同的特点和用途,下面将逐一介绍。GET请求GET请求是最常用的请求方式,用于向服务器请求获取某个资源。GET请求的参数会附加在URL的后面,以问号(?)分隔

API接口大全:常用、热门、免费的都有

常用、热门、免费的第三方接口应有尽有…二次号查询:通过手机号查询是否二次入网,直连三大运营商,精准查询。反欺诈(羊毛盾):反机器欺诈,检测异常IP、异常手机号。IP应用场景-IPv4,IPv4应用场景是获取IP场景属性的在线调用接口,具备识别IP真人度,提升风控和反欺诈等业务能力。IP应用场景基于地理和网络特征的IP场

postgresql教程

postgreSQL教程目录postgreSQL创建数据库的方式:postgreSQL删除数据库的方式:PostgreSQL创建表格postgre删除表格:postgreSQLINSERTINTO语句postgreSQLSELECT语句:postgresql索引:什么情况下要避免使用索引?postgreSQL创建数据库

热文推荐