java中基本类型之间的转换

基本类型容量

java中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围

  1. byte:字节型,占内存容量为 1 个字节(8 位),表示范围为 -128(-2^7)到 127(2^7-1)。
  2. short:短整型,占内存容量为 2 个字节(16 位),表示范围为 -32,768(-2^15)到 32,767(2^15-1)。
  3. int:整型,占内存容量为 4 个字节(32 位),表示范围为 -2,147,483,648(-2^31)到 2,147,483,647(2^31-1)。
  4. long:长整型,占内存容量为 8 个字节(64 位),表示范围为 -9,223,372,036,854,775,808(-2^63)到 9,223,372,036,854,775,807(2^63-1)。
  5. float:单精度浮点型,占内存容量为 4 个字节(32 位),表示范围约为 ±3.4E-45(±1.18e-38)到 ±3.4028235E38(±1.0x10^38)。
  6. double:双精度浮点型,占内存容量为 8 个字节(64 位),表示范围约为 ±4.9E-324(±1.17e-308)到 ±1.8014398E+308(±9.2x10^308)。
  7. char:字符型,占内存容量为 2 个字节(16 位),表示范围为 '\u0000'(0)到 '\uffff'(65,535)。
  8. boolean:布尔型,占内存容量为 1 个字节(8 位),表示范围为 false(0)和 true(非零)。

自动类型转换

根据数据容量和范围,小的数据类型可以转换为大的数据类型

比如:

int b = 1;
double c = b;

但是大的范围转为小的数据类型就会导致精度丢失 

比如:

 double a = 1.0;
 int b = a;

整形的数据在进行计算的时候会转换为int类型去进行计算 同时要注意的是不要超过类型的数值范围

 可自动关系转换图谱

强制类型转换

这种可以使多大范围的强制转换为小范围的,但是如果范围超了会导致精度丢失

    double a = 1.0;
    int b = (int) a;

当大范围的数值被强制转换为小范围的数值时,其精度可能会受到影响。以double和int为例,如果将一个double类型的值强制转换为int类型,那么小数部分将被直接截断,而不是四舍五入。因此,如果你有一个带有小数部分的double值,如3.14,在强制转换为int类型后,你将得到3,而不是3.14的整数部分3。

为了处理这种精度损失,你可以在强制类型转换前使用四舍五入的方法将float类型值转换为int类型值。具体代码如下:

float f = 3.14; int i = ( int )(f + 0.5); // 四舍五入。

这样可以保证转换后的int类型值更加准确。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/258469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2001年AMC8数学竞赛中英文真题典型考题、考点分析和答案解析

今天是2023年12月20日,距离2024年的AMC8正式考试倒计时30天。 从战争中学习战争最有效,对于各类考试、竞赛来说,从历年的真题中来了解考试题型、考试形式、对知识点查漏补缺最有效。 前几天,六分成长分析了2023年、2022年、2020、…

ADS学习笔记(一)——更新中

在ADS中,信号上升时间为信号从0~100%所用的时间,而实际上定义的上升边均为10%~90%,所以可以认为上升边=0.8*ADS设置上升时间。 一、终端开路及短路的反射信号 1.仿真条…

vue-count-to 数字滚动插件

使用npm 安装 npm install vue-count-to 页面引入 import countTo from 路径 <countTo :startVal"0" :endVal"100" />

【nfweb 发版图文】

发版步骤 更新后台版本号 把两个文件中的ver更改为对应发版的版本号、保存提交 master 操作 git pull 【拉取最新主分支内容】git merge xxx 【合并对应的分支到主分支】npm run build 【打包】 打包生成build文件 将build文件调整为以下格式 压缩build文件 发版 标签…

另一种理解伦敦金支撑阻力位的方法

支撑阻力位一向被认为是做伦敦金交易不可或缺的分析工具&#xff0c;但很多人对它的原理并不清楚&#xff0c;甚至不太服气&#xff0c;觉得凭什么一根平平无奇的水平位&#xff0c;能带来所谓的“大作用”呢&#xff1f;下面我们不妨从另外一个角度来看一下伦敦金市场中的支撑…

spring 定时任务Scheduler和异步任务Async

1. 概述 Spring框架分别通过TaskExecutor和TaskScheduler接口为任务提供异步执行和调度。 ThreadPoolTaskScheduler(继承自TaskScheduler)ThreadPoolTaskExecutor&#xff08;继承自TaskExecutor&#xff09;备注含义任务调度器&#xff0c;定时任务线程池执行器&#xff0c;…

MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces(单独表空间)

文章目录 MySQL 8.0 InnoDB Tablespaces之File-per-table tablespaces&#xff08;单独表空间&#xff09;File-per-table tablespaces&#xff08;单独表空间&#xff09;相关变量&#xff1a;innodb_file_per_table使用TABLESPACE子句指定表空间变量innodb_file_per_table设置…

以存算一体芯片加速汽车智能化进程,后摩智能带来更优解?

汽车产业的长期价值锚点已悄然变化&#xff0c;催生出新的商业机遇。 过去&#xff0c;在燃油车市场&#xff0c;燃油经济性和品牌认知度等是重要的消费决策因素和资本价值衡量标准&#xff0c;但在新能源时代&#xff0c;产业价值聚焦在两方面&#xff0c;一是电动化&#xf…

<一>Python变量以及数据类型、命名规则及输出输入语句

一、变量的定义 定义变量的语法为&#xff1a;变量名变量值。(这里的 作用是赋值。) 定义变量后可以使用变量名来访问变量值。 变量就是用来‘盛放’数据的容器。 二、变量的类型 三、查看数据类型 如果临时想要查看一个变量存储的数据类型&#xff0c;可以使用 type(变量…

企业特别大的文件用什么传比较快,企业快速传输大文件必备神器

对于企业而言&#xff0c;不论是内部的文件交换、协作、备份&#xff0c;还是外部的文件分享、投标、审计&#xff0c;都需要高效、稳定、安全的文件传输方式。特别是对于一些特别大的文件&#xff0c;如视频、音频、图片、设计图、数据库等&#xff0c;如果传输速度慢、不稳定…

Flutter实现丝滑的滑动删除、移动排序等-Dismissible控件详解

文章目录 Dismissible 简介使用场景常用属性基本用法举例注意事项 Dismissible 简介 Dismissible 是 Flutter 中用于实现可滑动删除或拖拽操作的一个有用的小部件。主要用于在用户对列表项或任何其他可滑动的元素执行删除或拖动操作时&#xff0c;提供一种简便的实现方式。 使…

什么店生意好?C++采集美团商家信息做数据分析

最近遇到几个朋友&#xff0c;想要一起合伙投资一个实体店&#xff0c;不问类型&#xff0c;就看哪类产品相对比较受欢迎。抛除地址位置&#xff0c;租金的影响&#xff0c;我们之谈产品。因此&#xff0c;我熬了几个通宵&#xff0c;写了这么一段爬取美团商家商品信息的数据并…

vue中使用minio上传文件

创建一个 文件getOssClient import { getOssSetting } from "/api/common"; import Vue from "vue"; import { getCookies, getLocal } from "/utils/auth"; // get token from cookie export async function getStsToken() {//从后台获取stsTo…

澳鹏干货解答!“关于机器学习的十大常见问题”

探索机器学习的常见问题&#xff0c;了解机器学习和人工智能的基本概念、原理、发展趋势、用途、方法和所需的数据要求从而发掘潜在的商机。 什么是机器学习&#xff1f; 机器学习即教授机器如何学习的过程&#xff0c;为机器提供指导&#xff0c;帮助它们自己开发逻辑&#…

STM32G030C8T6:使用按键控制LED亮灭(外部中断)

本专栏记录STM32开发各个功能的详细过程&#xff0c;方便自己后续查看&#xff0c;当然也供正在入门STM32单片机的兄弟们参考&#xff1b; 本小节的目标是&#xff0c;系统主频64 MHZ,采用高速外部晶振&#xff0c;通过KEY1 按键的PA0 引脚配置成中断输入引脚&#xff0c;PB9引…

SSH的交互原理(wireshark的分析)

SSH的交换原理&#xff08;wireshark篇&#xff09; 首先要想了解ssh的交换原理&#xff0c;必须要先了解他的加密方式&#xff0c;他的加密方式是对称加密&#xff0c;和公钥加密。什么意思呢&#xff1f; 首先我们向服务器发送一个请求&#xff0c;然后服务器会发给我们他的…

【Linux】进程周边006之进程地址空间

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.程序地址空间 1.1验证地址…

LeetCode 每日一题 Day 17 || 二分

1901. 寻找峰值 II 一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元素。 给你一个 从 0 开始编号 的 m x n 矩阵 mat &#xff0c;其中任意两个相邻格子的值都 不相同 。找出 任意一个 峰值 mat[i][j] 并 返回其位置 [i,j] 。 你可以假设整个矩阵周…

怎么检测DC-DC电源模块稳定性?电源测试系统测试有什么优势?

DC-DC电源模块稳定性测试 稳定性是衡量DC电源模块的重要指标&#xff0c;电源模块的稳定性直接影响着电源产品和设备的工作稳定性。DC-DC电源模块的稳定性&#xff0c;可以通过检测输出电压、输出电流、负载、波形、效率等参数来评估。 1. 静态测试方法 静态测试是通过直流电压…