关于java基本类型计算时的类型转换

来源:互联网 发布:知乎电脑配件专家 编辑:程序博客网 时间:2024/04/29 04:48

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">java的基本类型在编程时常常面临不同类型变量之间的相加,如:int+char、float+int、int+byte、int+double。</span>

所以为了不同类型的变量能够进行计算,计算时会进行相应的类型转换,这些转换会自动完成。

基本数据类型转换顺序:

               char----->int----->long----->float----->double

byte----->short----->int----->long----->float----->double

如果两个数据进行计算后,要变为你想要的类型,则需要使用强制类型的转换。

还有如果给一个float赋予初值时,float   f1=0.22会出错,应该使用float  f1=0.22f 或者float  f1=(float)0.22才正确。

但是在定义double时,double  d1=1.334是正确的。在java中,double只能进行科学的计算,如果在商业中则需要用到java.math.decimal的方法进行运算。

例:

import java.math.BigDecimal;public class MyText {  public static void main(String arg[]){byte b1=1,b2=2,b3,b6;     final byte b4=4,b5=6;     b6=b4+b5;     b3=(byte)(b1+b2);//byte类型在运算时都会自动转化为int类型,所以要么用强制转化把b1+b2变成byte     //要么把b3的类型改为int型     //下面输出13     System.out.println(b3+b6);     float f1=2.0f,f2;     int i1=1,i2;     f2=f1+i1;     //int和float相加会把int转换为float型     //下面输出3.0     System.out.println(f2);     //但是如果要把f1加i1的值赋给整型变量i2,则要进行强制类型转换     i2=(int)(i1+f1);     //下面输出3     System.out.println(i2);     //double和float相加     double d1=9.26,d2;     float f3=3.56f,f4;     //d1和f3相加,f3会转换为double型,而且算出来的是一个不准确的值,一个非常近似的值。     d2=d1+f3;     //下面输出12.81999994277954     System.out.println(d2);     //如果要输出的是float型,则要用强制转换     f4=(float)(d1+f3);     //下面输出12.82     System.out.println(f4);     //如果要进行商业运算,小数相加就要用java.math.BigDecimal类来进行运算。     double d3=2.556,d4=3.778;     BigDecimal bi1=new BigDecimal(Double.toString(d3));     BigDecimal bi2=new BigDecimal(Double.toString(d4));     //下面输出6.334     System.out.println(bi1.add(bi2));}}




1 0
原创粉丝点击