1、通过ToString() 方法, Double 就是一个包装类,String s1 = Double.toString(num);
Integer同理
2、通过valueof() 方法, 本质上还是调用 toString() 方法,String s2 = String.valueOf(num);
3、技巧性,第三种没有借助包装类 String s3 =“”+num;
string 和int之间的转换
string转换成int :Integer.valueOf(“12”) 或者Integer.PaseInt(“12”)
首先将char转换成string
String str=String.valueOf(‘2’)
Integer.valueof(str) 或者Integer.parseInt(str)
Integer.valueof返回的是Integer对象,Integer.parseInt返回的是int
BigDecimal 加法运算——add()方法
1、Int 类型
BigDecimal bigInt1 = new BigDecimal(6);
BigDecimal bigInt2= new BigDecimal(8);
BigDecimal intSum = new BigDecimal(0);
//BigDecimal求和
intSum = bigInt1 .add(bigInt2);
System.out.println("和 :" +intSum);
//打印输出
和 :14
2、double 类型
BigDecimal bigDouble1= new BigDecimal(6.6);
BigDecimal bigDouble2= new BigDecimal(8.8);
BigDecimal doubleSum = new BigDecimal(0);
//BigDecimal求和
doubleSum = bigDouble1.add(bigDouble2);
System.out.println("和:" + doubleSum );
//打印输出
和:15.4000000000000003552713678800500929355621337890625
double不能表示为任何有限长度的二进制小数,所以会出现丢失精度问题,官方文档中建议使用字符串形式,这样不会丢失精度。
3、String类型
BigDecimal bigString1 = new BigDecimal("6.6");
BigDecimal bigString2 = new BigDecimal("8.8");
BigDecimal stringSum = new BigDecimal(0);
//BigDecimal求和
stringSum= bigString1.add(bigString2);
System.out.println("和 :" +stringSum);
//打印输出
和 :15.4
BigDecimal 加法运算——add()方法、减法运算——subtract()方法、乘法运算——multiply()方法、除法运算——divide()方法,同理使用,但是最好使用String避免丢失精度。
1.BigDecimal.ROUND_UP 进位处理
BigDecimal test= new BigDecimal(6.51);
//表示保留一位小数,只要第二位小数不为0都进1
System.out.println(test.setScale(1,BigDecimal.ROUND_UP));
-----------------------------------------
输出:6.6
BigDecimal test= new BigDecimal(6.50);
//表示保留一位小数,只要第二位小数不为0都进1
System.out.println(test.setScale(1,BigDecimal.ROUND_UP));
-----------------------------------------
输出:6.5
2.BigDecimal.ROUND_HALF_UP 四舍五入
BigDecimal test= new BigDecimal(6.55);
//四舍五入
System.out.println(test.setScale(1,BigDecimal.ROUND_HALF_UP));
-----------------------------------------
输出:6.6
3.BigDecimal.ROUND_DOWN直接删除多余的小数位
BigDecimal test= new BigDecimal(6.59);
//直接删除多余的小数位
System.out.println(test.setScale(1,BigDecimal.ROUND_DOWN));
-----------------------------------------
输出:6.5