double retval = new BigDecimal(x).setScale(2, RoundingMode.UP).doubleValue();
1000 : 41682205
avg 1: 42933
double retval = Precision.round(x, 2); // из библиотеки Апача, в предыдущих версиях этот метод был в MathUtils
1000 : 29352341
avg 1: 29588
double retval = Math.round(x * Math.pow(10, 2)) / Math.pow(10, 2);
1000 : 1035745
avg 1: 1041
double retval = round(x, 2);
1000 : 96630
avg 1: 96
private float round(double number, int scale) {
int pow = 10;
for (int i = 1; i < scale; i++) {
pow *= 10;
}
double tmp = number * pow;
return (float) (int) ((tmp - (int) tmp) >= 0.5f ? tmp + 1 : tmp) / pow;
}
|