Если нам не надо очень точное округление чисел, то лучше юзать тип double, а не BigDecimal

public static void main(String[] args) {
		double d1 = 5.124566;
		System.out.println(d1);
		System.out.println(rounding(d1));
		System.out.println(rounding(d1, 5));
	}
//возвращает 3 знака после запятой
	public static double rounding(double d) {
		return ((double) Math.round(d * 1000) / 1000);
	}
//возвращает digit знаков после запятой
	public static double rounding(double d, int digit) {
		return ((double) Math.round(d * Math.pow(10, digit)) / Math.pow(10,
				digit));
	}

Вывод на консоль:
5.124566
5.125
5.12457

Реклама