关于Java保留n位小数的问题

java中如何把计算后的结果,保留2位小数后赋值给另一个变量?
比如 下面这段演示代码:

double a=10/3;    //我们已经知道结果是 3.3333333······无限循环
//这里我想要将这个计算后的a值截取两位小数后,再赋值给下面这个变量
double b;    //这个变量要如何得到保留两位小数后的a值?

BigDecimal

         double a=10/3.0;
        BigDecimal decimal = new BigDecimal(a);
        double b = decimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(b);

用BigDecimal的setScale方法