java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三

这两个数 可能为Int类型 可能为double类型,结果要是string类型的

public static void main(String[] args) {
System.out.println(test(2, 0.7)); //参数为int和double 结果=2.86
System.out.println(test(11111111111113L, 4.5)); // 参数为long和double 结果=2,469,135,802,469.56
System.out.println(test("234567", "3.14159")); // 参数为字符串 结果=74,665.06
}

private static String test(Object a, Object b) { // 参数类型任意(只要是number),返回总是字符串
// 下面这一行里的2,表示保留小数点后多少位(四舍五入),如果两位就是2,如果小数点前三,就改成3.
BigDecimal result = new BigDecimal(String.valueOf(a)).divide(new BigDecimal(String.valueOf(b)), 2, BigDecimal.ROUND_HALF_UP);
return new DecimalFormat("###,###.###").format(Double.valueOf(result.toString())).toString();
}追问

谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-20
public static String test(double d1,double d2){
DecimalFormat df = new DecimalFormat("#,###.##");
return df.format(d1/d2);
}

第2个回答  2015-01-20
用BigDecimal
第3个回答  2015-01-20
独上高楼望吴越。白云映水摇空城,