Comparar um valor proximo em array de Double[][] Java

2 respostas
java
soloplayer

Olá pessoal, estou quebrando cabeça aqui com um array em java:

public static final Double[][] DESCONTO_MIX = {
		{ 6.67, 2.00 },
		{ 10.00, 3.00 },
		{ 13.34, 4.00 },
		{ 16.67, 5.00 },
		{ 20.00, 6.00 },
		{ 23.34, 7.00 },
		{ 26.67, 8.00 },
		{ 30.00, 9.00 },
		{ 33.34, 10.00 },
		{ 36.67, 11.00 },
		{ 40.00, 12.00 },
		{ 43.34, 13.00 },
		{ 46.67, 14.00 },
		{ 50.00, 15.00 },
		{ 53.34, 16.00 },
		{ 56.67, 17.00 },
		{ 60.00, 18.00 },
		{ 63.34, 19.00 },
		{ 66.67, 20.00 },
		{ 70.00, 21.00 },
		{ 73.34, 22.00 },
		{ 76.67, 23.00 },
		{ 80.00, 24.00 },
		{ 83.34, 25.00 },
		{ 86.67, 26.00 },
		{ 90.00, 27.00 },
		{ 93.34, 28.00 },
		{ 96.67, 29.00 }};

Preciso do seguinte, ao digitar por exemplo um determinado valor, ele calcula e me da um percentual 91.15 por exemplo, eu percorrer este array, e eu saber que ele me trará o valor “28.00”, eu fiz assim mas não deu certo:

for (int i = 0; i< DESCONTO_MIX.length; i++){
		if (13.90 >= DESCONTO_MIX[i][0]){
			Log.d("SEU DESCONTO ", "SEU DESCONTO É....................... " +String.valueOf(DESCONTO_MIX[i]));
		}
		//Log.d("CONTANDO ", "CONTANDO....................... " +DESCONTO_MIX[i][1]);
		contador++;
	}

Tks

2 Respostas

RenanRosa

Mas qual o erro que está dando ?
Olhando seu código, aparentemente está exibindo o endereço de memória, deve mudar
Log.d("SEU DESCONTO ", "SEU DESCONTO É....................... " +String.valueOf(DESCONTO_MIX[i]));

Para
Log.d("SEU DESCONTO ", "SEU DESCONTO É....................... " +String.valueOf(DESCONTO_MIX[i][1]));

e também colocar um break logo em seguida, se não ele mostra todos que forem maior que o valor encontrado.

E também comparar com a próxima posição.

if (40.90 >= DESCONTO_MIX[i][0] && ( 40.90 <= DESCONTO_MIX[i+1][0])){

Fica assim:

for (int i = 0; i< DESCONTO_MIX.length; i++){
    		if (40.90 >= DESCONTO_MIX[i][0] && ( 40.90 <= DESCONTO_MIX[i+1][0])){
    			Log.d("SEU DESCONTO ", "SEU DESCONTO É....................... " +String.valueOf(DESCONTO_MIX[i][1]));
                break;
    		}
    		//Log.d("CONTANDO ", "CONTANDO....................... " +DESCONTO_MIX[i][1]);
    		contador++;
    	}
soloplayer

Olá bom dia tudo bem? Me desculpe pela demora para retornar, implementei várias outras coisas e esta sabia que iria dar um pouco mais de trabalho por imaginar que é simples, mas enfim, deu certinho, agradeço pela força, Tks.

Criado 27 de abril de 2018
Ultima resposta 9 de mai. de 2018
Respostas 2
Participantes 2