1. java中将一个double类型的数强制转换为long 型是四舍五入吗
Java 中 long 是一个整数基本类型, 长度为64bits, 即8字节.而double存在小数;如果带小数点的double转long型必定会造成数据变化!那么,是怎么变化的呢?
由此可见,java double转long型是取整运算;
2. java中double类型转换的方法是什么
Double是对象,double是基本类型。
你好Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱。看你的提示,我推测你的jdk版本在1.5以前。
如果是这样,可以用Double中的方法,将包装类转为基本数据类型,如:
double amount = rec.getAmount().doubleValue()。
3. java 的long转换double问题
long是高于double精度的一个基础变量类型,你在这里的强行转换会产生精度缺失的问题。
这个是我运行你的代码的结果,可以看出精度的缺失吧?
long是一个长整形变量,而double是双精度的浮点数(其实就是小数)
然后再这里b/1000就是等于12,因为b是长整形的,他的计算结果也会事长整形的
所以需要在计算前先将b强制装换为double型的,才可以保证精度不缺失
4. java 的long转换double问题
(double)
b/1000;
这一步是把b先转化为Double型
然后进行计算
因为计算的类型中有double型
所以1000自动转化为double型
结果就是double型
12.345
b/1000;
这一步是long型/long型
得到的结果也是long型
就是12
然后转化为double型
就是12.0
5. java 变量数据类型转换byte, short, char, int, long, float, double
整数类型可以这样砍去多余的字节,但是在浮点型中有一个小数点,就是这个小数点导致浮点类型不能像整型一样进行转换。再多的就不知道了
^_^
6. 在JAVA中把double类型转换成long类型,丢失数据位是什么,为什么
long是
长整型
,在怎么长本身也是整型,12.10的整形部分是12,当然结果是12,只不过long类型要比int类型值的范围要更广。
7. Java初学:long类型能转换为double类型吗它们都是8字节的内存长度
Long a = new Long (100);
double b = a.doubleValue();
System.out.println(b);
8. 请问java中,Double类型和double有什么不同能否转换
Double 是类 double是基础数据类型。Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱。如果是这样,可以用Double中的方法,将包装类转为基本数据类型。
可以转换的。
9. Java中几种常用数据类型之间转换的方法
下面给你例举10种Java中几种常用的数据类型之间转换方法:
1. short-->int 转换
exp: short shortvar=0;
int intvar=0;
shortvar= (short) intvar
2. int-->short 转换
exp: short shortvar=0;
int intvar=0;
intvar=shortvar;
3. int->String 转换
exp: int intvar=1;
String stringvar;
Stringvar=string.valueOf (intvar);
4. float->String 转换
exp: float floatvar=9.99f;
String stringvar;
Stringvar=String.valueOf (floatvar);
5. double->String 转换
exp double doublevar=99999999.99;
String stringvar;
Stringvar=String.valueOf (doublevar);
6. char->String 转换
exp char charvar=’a’;
String stringvar;
Stringvar=String.valueOf (charvar);
7 String->int、float、long、double 转换
Exp String intstring=”10”;
String floatstring=”10.1f”;
String longstring=”99999999”;
String doubleString=”99999999.9”;
Int I=Integer.parseInt (intstring);
Float f= Integer.parseInt (floatstring);
Long lo=long. parseInt (longstring);
Double d=double. parseInt (doublestring);
8 String->byte、short 转换
Exp String s=”0”;
Byte b=Integer.intValue(s);
Short sh=Integer.intValue(s);
9 String->char 转换
Exp String s=”abc”;
Char a=s.charAt(0);
返回字符a
10 String-->boolean 转换
String s=”true”;
Boolean flag=Boolean.valueOf (“s”);
10. java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组
1、转化为long类型
先Double.doubleToLongBits/Double.doubleToRawLongBits,得到long类型,
例子:
longl=0x0102030405060708L;
2、转化为16进制字符串或数组
byte[]b=newbyte[8];
b[0]=(byte)(l&0x000000000000FFL);
b[1]=(byte)((l&0x0000000000FF00L)>>8);
b[2]=(byte)((l&0x0000000000FF0000L)>>16);
b[3]=(byte)((l&0x00000000FF000000L)>>24);
b[4]=(byte)((l&0x000000FF00000000L)>>32);
b[5]=(byte)((l&0x0000FF0000000000L)>>40);
b[6]=(byte)((l&0x00FF000000000000L)>>48);
b[7]=(byte)((l&0xFF00000000000000L)>>56);