整形: bate:占用1个字节
short:占用两个字节
int :占用四个字节
long:占用八 个字节
浮点型:double:占用8个字节
float:占用4个字节
字符型:char:占用两个字节
布尔型:boolean
在以上类型中可直接计算的有整形,浮点型,BigDecima,常用的整形计算和平时常用的加减乘除差不多,这里就不多做介绍,double类型直接做 加减乘除会丢失精度,我们通常将double类型转为BigDecima类型后,再进行计算:
BigDecimal bignum1 =
new
BigDecimal(
"10"
);
BigDecimal bignum2 =
new
BigDecimal(
"5"
);
BigDecimal bignum3 =
null
;
//加法
bignum3 = bignum1.add(bignum2);
System.out.println("求和:" + bignum3);
//减法
bignum3 = bignum1.subtract(bignum2);
System.out.println("求差:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("乘法积:" + bignum3);
//除法
bignum3 = bignum1.divide(bignum2);
System.out.println("除法结果:" + bignum3);
但是 这样得到数据小数位可能不是我们想要的,所以我们需要将得到的数据 取出我们想要的小数位:
double num=13.154215;
//方式一
DecimalFormat df1 = new DecimalFormat("0.00"); //定义一个两位小数的DecimalFormat类型
String str = df1.format(num); //使用DecimalFormat自带的方法转为两位数的字符串类型
System.out.println(str); //13.15
//方式二
// #.00 表示两位小数 #.0000四位小数
DecimalFormat df2 =new DecimalFormat("#.00");
String str2 =df2.format(num);
System.out.println(str2); //13.15
//方式三
//%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型
String result = String.format("%.2f", num);
System.out.println(result); //13.15
如果对象是BigDecimal类型,只需要用BigDecimal自带的方法(这块就不自己写方法了,想详细了解的可以去https://www.cnblogs.com/liqforstudy/p/5652517.html这个地址了解):
进入String这个类,我们会发现,String这个类是用 final这个修饰,表明String不可变,我们将一个常量赋予创建好的String时,使用时拿到的是我们赋予的常量,但是我们有没有想过final已经修饰过了,为什么还能重新给String赋予常量?其实在你给创建好的String赋予变量时 ,已经 是重新创建了一个String,只不过新建的String覆盖了以前的String,但是以前的String还是占用着位置。
我们经常用的String的比较方法.equals()这个方法,因为在String中,==比较的是String的地址,每个String的地址都是不相同的,所以会返回false,而equals比较的是两者的值是否相同,而整形的比较用==。
原文:https://www.cnblogs.com/wmw1226/p/13192132.html