java 基本数据类型的取值
一、
1、
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)
| 基本类型 | 字节数 | 位数 | 最大值 | 最小值 |
| byte | 1byte | 8bit | 2^7 - 1 | -2^7 |
| short | 2byte | 16bit | 2^15 - 1 | -2^15 |
| int | 4byte | 32bit | 2^31 - 1 | -2^31 |
| long | 8byte | 64bit | 2^63 - 1 | -2^63 |
| float | 4byte | 32bit | 3.4028235E38 | 1.4E - 45 |
| double | 8byte | 64bit | 1.7976931348623157E308 | 4.9E - 324 |
| char | 2byte | 16bit | 2^16 - 1 | 0 |
二、当整数数据类型的值和浮点小数相加减时,最好先把类型做强转之后再加减,或者使用BigDecimal 来进行计算。
例子1:
long long1=922337203685477580L;
float float1=1.911111111F;
float float4=long1-float1;
double double1=long1-float1;
long long2=(long)(long1-float1);
float float2=(float)(long1-float1);
long long3=long1-(long) float1;
float float3=(float)long1-float1;
Log.d("qtest",float4+"/"+double1+"/"+long2+"/"+float2+"/"+long3+"/"+float3+"/");
结果: 9.223372E18/9.223372036854776E18/922337203685477580/9.223372E18/922337203685477580/9.223372E18/
例子2:
long long1=92233720685477580L;
float float1=1.911111111F;
float float4=long1-float1;
double double1=long1-float1;
long long2=(long)(long1-float1);
float float2=(float)(long1-float1);
long long3=long1-(long) float1;
float float3=(float)long1-float1;
Log.d("qtest",float4+"/"+double1+"/"+long2+"/"+float2+"/"+long3+"/"+float3+"/");
结果: 9.223372E18/9.223372036854776E18/92233720685477580/9.223372E18/92233720685477580/9.223372E18/
例子3:
long long1=923372036854775807L;
float float1=1.911111111F;
float float4=long1-float1;
double double1=long1-float1;
long long2=(long)(long1-float1);
float float2=(float)(long1-float1);
long long3=long1-(long) float1;
float float3=(float)long1-float1;
Log.d("qtest",float4+"/"+double1+"/"+long2+"/"+float2+"/"+long3+"/"+float3+"/");
结果: 9.123372E18/9.1233720040643625E18/9233720/9.123372E18/9233720/9.123372E18/ 总结:
整数减去浮点小数,得到的是浮点小数类型的值。所以,如果想要得到整数类型的值,那么先把浮点小数转为整数类型,然后进行运算。
java 基本数据类型的取值的更多相关文章
- 了解Java基本数据类型的取值范围
拿byte类型做栗子 一个字节是8位二进制数,然后最高位会用来作为符号位.正数计算机是存的原码,负数是存的补码. 也就说byte正数最大是0111 1111,转化为十进制是:127(这就是byte的上 ...
- Java基本数据类型的取值范围
版权声明:本文为博主原创文章,未经博主允许不得转载. 先看一段代码public class Hello{ public static void main(String[] args){ ...
- Java 基本数据类型的取值范围
基本数据类型,字节数,位数,最大值和最小值. 1. 基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此 ...
- mysql中数据类型的取值范围
mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下: 1.bigint 从 -2^63 (-9223372036854775808) 到 2^ ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- C语言中各个数据类型的取值范围
因为CPU的差异,各系统中的数据类型所占的字节数(bytes)不同,二进制位数(bit)也不同.那么怎样才能知道自己系统的数据类型的字节数,位数呢? 授之以鱼不如授之以渔,大家可以自己从电脑里获取这些 ...
- Java基础:8种基本数据类型,取值范围和储存字节说明。
Java中,一共有8种基本数据类型: 4种整数型:int,short,long,byte. 2种浮点型:float,double. 1种字符类型:char. 1种表示真值的类型:boolean. [S ...
- java数据类型,取值范围,引用类型解析
与javascript不同,Java是强类型语言,在定义变量前需要声明数据类型.主要分两种数据类型:基本数据类型和引用数据类型. 1.基本数据类型分析: 基本数据类型 数值型 整数型 byte字节 ...
- Java中float/double取值范围与精度
Java浮点数 浮点数结构 要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识01,你想表示小数,你要机器认识小数点这个 ...
随机推荐
- 数据结构与算法之美学习笔记:B+树(第48讲)
一.解决问题的前提是定义清楚问题 通过对一些模糊需求进行假设,来限定要解决问题的范围 根据某个值查找数据,比如 select * from use where id=1234: 根据区间值来查询某些数 ...
- 自定义element-ui中的图标
element-ui图标库图标较少,比如有关于登录页面输入框里的用户名和密码的小图标就没有,这个时候可以自定义图标. <el-input v-model="loginForm.user ...
- 【小白学Lua】之Lua变长参数和unpack函数
一.简介 Lua的变长参数和unpack函数在实际的开发中应用的还挺多的,比如在设计print函数的时候,需要支持对多个变量进行打印输出,这时我们就需要用到Lua中的变长参数和unpack函数了. 二 ...
- DUMP 5 企业级电商项目
[订单模块] 创建订单 商品信息 订单列表 订单详情 取消订单 订单列表 订单搜素 订单详情 订单发货 [创建订单] 购物车勾选商品 涉及 Cart Product => 一个商品 ...
- avg 的使用
select * from emp where sal>(select avg(sal) as ssalfrom emp);--要求查询出高于公司平均工资的全部雇员信息
- 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
平台:迅为IMX6Q PLUS开发板工具:MfgTool2 工具 镜像文件在光盘目录“03 镜像_android 6.0.1 文件系统”下.其中商业级核心板为 2G内存镜像,工业级核心板为 1G 内存 ...
- 安装YApi 接口管理平台
yum install mongodb yum install -y nodejs git clone https://gitee.com/mirrors/YApi.git 克隆项目到本地 使用命令进 ...
- c# 利用IEqualityComparer接口去除DataTable重复数据
IEqualityComparer主要适用于定义方法以支持对象的相等比较.可以实现集合的自定义相等比较.即,您可以创建自己的相等定义,并指定此定义与接受 IEqualityComparer 接口的集合 ...
- XAMARIN 安卓程序闪退问题
参考:https://forums.xamarin.com/discussion/25780/unfortunately-app-name-has-stopped 在VS 2017中使用Xamarin ...
- Light OJ 1085 - All Possible Increasing Subsequences
题目 link 给定一个序列, 求出上升子序列的总数. 分析 Dp[i] 表示序列 以 i 结尾的数目. 可知 Dp[i]=∑Dp[x]+1 这是一个前缀和, 用树状数组维护. Code #inclu ...