Ajuda arredondamento para maior double

Olá gente, tenho uma duvida simples, mas é complicado rsrsr.

Tenho que multiplicar 02 números ex: 1.032 x 1.010. Quando o usuário digitar preciso arredondar este valor sempre para mais, de 5 em 5, vai ficar ex: 1.05 x 1.05

ex:
1.001 = 1.05
1.070 = 1.10
1.971 = 2.00

Agradeço antecipadamente;

ceil(): arredonda para cima
floor(): arredonda para baixo

use printf do C pra colocar 2 casas decimais.

Terás de usar a classe BigDecimal.
Tem o método setScale em que você deve passar valores que se encontram como estáticos na própria classe BigDecimal, como por exemplo, ROUND_UP.

Abraços.

tenho certeza que esse não é o jeito mais elegante de fazer isso, mas:

[code]public static double roundUp(double d) {
long l = (long) d;
double decimal = d - l;

if (decimal == 0) {
	return l;
}
	
decimal = (long) (decimal * 100);
if (decimal <= 5) {
	return l + 0.05;
} else if (decimal <= 10) {
	return l + 0.1;
} else if (decimal <= 50) {
	return l + 0.5;
} else {
	return l + 1;
}

}[/code]

Outro jeito de fazer:

public static double roundUp(double d) { long l = Math.round(d * 100); long m = (l % 5); l = l + ((m > 0) ? 5 - m : 0); return ((double) l) / 100; }

[quote=yhhik]ceil(): arredonda para cima
floor(): arredonda para baixo

use printf do C pra colocar 2 casas decimais.[/quote]

Mas para a situação que colocou a classe Math.ceil(double) ou Math.floor(double), cortas os 0.
Ex:
Math.ceil 2.017 = 3.0
Math.floor 2.017 = 2.0…

Não seria isso…

double d = Math.ceil(n1 / 0.05) * 0.05;

heatcold respondeu.

agora é so usar o printf para deixar 2 casas decimais depois do ponto.

[code]double n=6.31;

double num= Math.ceil(n / 0.05) * 0.05;

System.out.printf("%.2f",num);[/code]

nossa realmente funciona essa conta do mal. vcs são bons mesmo. valew

double n=6.31;

double num= Math.ceil(n / 0.05) * 0.05;

System.out.printf("%.2f",num);