java 数据类型转换
java中数据类型是有个隐式的自动转换的.
byte,short,int和long都是整数,任何数字(如1,11,111等),只要不超过范围,都是可以赋值给byte,short,int类型的,但不能直接赋值给long,必须在后面加上L(大小写均可),任何char,byte,short,int之间的计算的结果都是int
型,
如题,
a
=
1;把1赋给a,当然把1赋给byte是没有问题的,
a
=
a
+
1
;
这样就等于把int型赋给了byte型是会报错的.
a
+=
1
是自增运算,+=,-=,*=,/=等运算是不会转成其他类型的,此题中虽然结果与a
=
a
+
1一样;
顺便展开一点讲,共有8种基本数据类型,顺要说明的是:byte,short,int,long,float,double,boolean,char
1.char,byte,short,int之间运算会自动转换为int,不包括自增与自减;
char会以ASCII码转换
2.如下链条,可以向下赋值,反之刚不行,比如,byte值可以赋给short变量,反之则不行.
3.数字默认类型是int,是不符合如下链条的例外情况,只要不超过范围可以赋值给char,byte,short等类型,比如可以byte
a
=
127是对的,byte
a
=
128是会编译错误的;
4.有小数点的都默认为为double型,加f变float,如2.5f
5.boolean只能逻辑运算
byte-short-int-long-float-double
char-int
java数据类型转换方式有几种
如:String s = “123”;
int num = Integer.parseInt(s);注意:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,会抛出异常java.lang.NumberFormatException
2、String类型转换成double类型变量:使用double类的parseDouble(String )方法
如:String s = “123”;
idouble num = Double.parseDouble(s);
3、int类型变量转换成String类型变量:使用String类的valueOf(int )方法
如: int num = 123;
String s = String.valueOf(num);
4、Double类型变量转换成String类型变量:使用String类的valueOf(int )方法
如: Double num = 123.0;
String s = String.valueOf(num);
5、String变量转换成字符数组Char[]:使用String类的toCharArray()方法
如: String s = “123”;
6、字符或字符数组转换成字符串,也是通过valueOf()方法,不再给出示例代码。
在java中怎么把double类型转成int类型?
在android开发过程中我们常常遇到数据类型的转换,其中double转int类型是最常见的
方法一:强制转换
int i ;
double db;
i = (int) db;
这种方法会丢失小数点后面的值
int i ;
double db;
i = (int)Math.pow(db2, n);
这种方法的好处是不会丢失小数点后面的值,不过当double值过大时,即大于int类型值得范围时还是会改变原来的值;
最好的方法是将double类型转换为String类型,由String转换为int类型
public int stringToInt(String string){ int j = 0;
String str = string.substring(0, string.indexOf(“.”)) + string.substring(string.indexOf(“.”) + 1);
int intgeo = Integer.parseInt(str);
return intgeo; }
Java中数据类型转换有几种?每种转换都在什么情况下使用?
java
中自动化转换和强制转换
自动转换就例如简单类型的转换,可以自动通过
如整形转换城FLOAT,或者double
有些字符串类型则被转换成相应的ascii码
而转换会产生溢出或者丢失的转换则需要编程者进行强制转换
相对的java中还有原始变量和java进行封装的数据类型的转换
float
f=10.01;
Float
F=new
Float(f);
每种转换根据编程需要使用。
JAVA基本数据类型转换
基本类型中byte、short、int、long
和
float、double
依次增大,当后者转换成前者时需要强制转换,例如:long
a
=
100L;int
b
=
(int)a
;
但前者转换成后者,则可以直接赋值,JVM会完成自动转换