在JAVA中把double类型转换成long类型,丢失数据位是什么,为什么?_百度…
1、而虚线int转float、long转float,long转double都会发生精度丢失。
2、Java 语言支持两种基本的浮点类型: float 和 double 。java 的浮点类型都依据 IEEE 754 标准。IEEE 754 定义了32 位和 64 位双精度两种浮点二进制小数标准。IEEE 754 用科学记数法以底数为 2 的小数来表示浮点数。
3、在java中,数据类型long和float之间进行转换,都可能损失精度,原因有两个:long占用8字节,float占用4字节;long的数据范围为-9223372036854775808~9223372036854775807,而float的数据范围为4E-38~4E+38。
4、byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码:byte b = 10;short sh = b;这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。
为什么Java中的long与double不是线程安全的
1、因为long和double类型是8字节,而低位操作系统(32bit)单次内存的存储结构最大只能存储4个字节,所以每次操作都要分两次进行,也就是非原子性操作。
2、2)所有引用reference的赋值操作 3)java.concurrent.Atomic.* 包中所有类的一切操作。但是java对long和double的赋值操作是非原子操作!long和double占用的字节数都是8,也就是64bits。
3、我觉得不是安全的,一个单例,在有效的生命期内都是独一的,你多线程调用的都是一人上对象的实例,不会因为你不同的时间调用方法而改变方法的引用。
double,float,long它们有啥区别?
1、Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。
2、float是浮点数,double是双精度浮点数,表示的范围不小于float 一般32系统下,long占4字节,float占4字节,double占8字节。
3、float与double 用来存储有符号小数,前者是单精度,后者是双精度。当然精义越高能表示的有效位数就更多。在Windows平台下,float是4Byte的,精度大致有7位,double是8Byte的,精度大致有15位。
4、各种数据类型的关键词不同。short、long、int、float、double、char六个关键词表示C语言里六种基本数据类型。不同数据类型占用内存的大小不同。
5、long float是以前的c语言(传统c语言)用的类型,与 double 同义,在老式的c语言编译器可能会允许该类型,但现在已经被 double 替换掉,c89标准就已经删除了该类型,因此在比较新的c编译器用这个类型时,编译可能会报错。
最近看java基础,发现数值不一样的long和double类型的数据比较的结果居然…
1、1)除long和double之外的基本类型的赋值操作 2)所有引用reference的赋值操作 3)java.concurrent.Atomic.* 包中所有类的一切操作。
2、System.out.println(Double.MIN_VALUE);//最小数:9E-324 java中测试结果。double的范围大。
3、long的取值范围是2的63次方-1到负的2的63次方。
4、double是浮点型,long是整数型,以上语句转换时小数部分没有了,这就是丢失。javadouble转long型是取整运算,用Double封装下基本类型double,再调用longValue方法。
java的基本数据类型有哪些
1 boolean型在上一章的逻辑运算符中,我们就已经看到过了取值为true和false的变量,这种变量称为boolean型变量。
类型基本上可以分为三类:char、boolean和byte、short、int、long、float和double。类型可以分为整数类型(如字节、短整型、整型、长整型)和浮点类型(如浮点型和双精度型)。
JAVA中一共有八种基本数据类型,分别是:byte、short、int、long、float、double、char、boolean。byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 boolean(它只有两个值可取true false)第四类:字符型 char 在栈中可以直接分配内存的数据是基本数据类型。
java中包含的基本数据类型介绍:\x0d\x0aJava共支持8种内置数据类型。内置类型由Java语言预先定义好,而且用Java关键字命名。下面来具体学习这8种内置类型。
Java中的Long和Double类型
1、long的取值范围是2的63次方-1到负的2的63次方。
2、double是浮点型,long是整数型,以上语句转换时小数部分没有了,这就是丢失。javadouble转long型是取整运算,用Double封装下基本类型double,再调用longValue方法。
3、目前的JVM(java虚拟机)都是将32位作为原子操作,并非64位。
4、long是高于double精度的一个基础变量类型,你在这里的强行转换会产生精度缺失的问题。
5、double是n*2^m(n乘以2的m次方)这种形式存储的,只需要记录n和m两个数就行了,m的值影响范围大,所以表示的范围比long大。