本文目录一览:
- 1、java浮点型数据表示方法有几种,各是什么?
- 2、Java语言中的浮点型数据的float和double的单精度和双精度到底是啥意思?
- 3、java中的基本数据类型有几种
- 4、java 浮点数为什么精度会丢失
- 5、Java中怎么把浮点数转变成整数只保留整数部分
- 6、java里的浮点数是什么意思
java浮点型数据表示方法有几种,各是什么?
Java浮点型数据类型有float和double两种,其中float是单精度浮点型,占32位,其对应的封装类为Float,double是双精度浮点型,占64位,其对应的封装类为Double,关于Float类和Double类详情请参考java api。
说明
数据类型所占位数的范围:
float表示数据范围 3.4e-038~3.4e+038 ;
double表示数据范围 1.7e-308~1.7e+308 ;
双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。
变量定义示例
float f = 123.456f; //指定变量f为float型
double d = 123.456; //指定变量d为double型,浮点数默认类型
Java语言中的浮点型数据的float和double的单精度和双精度到底是啥意思?
主要有下面几个区别,手册上的,希望能帮到你
1、变量类型不同
float属于单精度型浮点数据。
double属于双精度型浮点数据。
2、指数范围不同
float的指数范围为-127~128。
double而double的指数范围为-1023~1024
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)
double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)
4、占用内存空间不同
float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38。
double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
5、有效位数不同
float只能提供七位有效数字。
double可提供16位有效数字。
java中的基本数据类型有几种
四种八类:
基本数据类型
整数类型:
byte:字节占用 1字节 8位,用来表达最小的数据单位,储存数据长度为 正负 127;
short:字节占用 2字节 16位,储存数值长度为 -32768-32767
int:字节占用 4字节 32位,最为常用的整数类型,储存长度为,-2^31-1~2^31 (21 亿)
long:字节占用 8字节 64位,当到达int数值极限时使用,储存长度为 看图片:
浮点数类型:
float:单精度浮点型 32位 取值范围 3.4e-38~3.4e-38
double:双精度浮点型 64位 ,java中默认的浮点类型 取值范围 1.7e-308~1.7e-308
字符类型:
char:16位 ,java字符使用Unicode编码;
布尔类型
boolean : true 真 和 false 假
引用数据类型:
类 class
接口 interface
数组
java 浮点数为什么精度会丢失
并不是java的浮点数精度会丢失,而是所有用二进制存储中的浮点数都可能会精度丢失(部分特殊的小数数值可以精确表示),所以计算机中存储的浮点数都存在精度丢失的风险,不过一边这个丢失的精度对我们正常的使用不会构成影响。
小数在转换为二进制时并不一定能用一个精确的二进制表示,大多数时候都是取的一个近似值,这就造成了精度的丢失。如果再用这个二进制进行计算,明显计算结果的精度会进一步丢失。
举个简单的例子把0.1用二进制表示(小数与二进制转换方法)
(1) 0.1 x 2 = 0.2 取整数位 0 得 0.0
(2) 0.2 x 2 = 0.4 取整数位 0 得 0.00
(3) 0.4 x 2 = 0.8 取整数位 0 得 0.000
(4) 0.8 x 2 = 1.6 取整数位 1 得 0.0001
(5) 0.6 x 2 = 0.2 取整数位 1 得 0.00011
(6) 0.2 x 2 = 0.4 取整数位 0 得 0.000110
(7) 0.4 x 2 = 0.8 取整数位 0 得 0.0001100
(8) 0.8 x 2 = 1.6 取整数位 1 得 0.00011001
(9) 0.6 x 2 = 1.2 取整数位 1 得 0.000110011
(n) ...
得到一个无限循环的二进制小数 0.000110011…,没办法用一个精确的二进制表示0.1。而且计算机中存储一个浮点数所用的位数也是有限的,所以只能选择在某一个精度进行保存。
当然也有特殊的小数,比如0.25的二进制为0.01
附:代码之谜(五)- 浮点数(谁偷了你的精度?)
Java中怎么把浮点数转变成整数只保留整数部分
两种方式:
1、通过强制类型转换
float a=1.1f;//定义一个浮点变量a
int b = (int)a;//这里使用(int)方式对float进行强转,结果为12、通过转换为字符串,在截取整数部分
float a = 1.1f;//定义一个浮点变量a
String str = String.valueOf(a);//浮点变量a转换为字符串str
int idx = str.lastIndexOf(".");//查找小数点的位置
String strNum = str.substring(0,idx);//截取从字符串开始到小数点位置的字符串,就是整数部分
int num = Integer.valueOf(strNum);//把整数部分通过Integer.valueof方法转换为数字
java里的浮点数是什么意思
float表示单精度浮点数在机内占4个字节,用32位二进制描述。
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占1位二进制,表示数的正负。
指数符占1位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点
指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。
可能是数符加尾数占24位,指数符加指数占8位 -- float.