Urgente! Fazer parseDouble

5 respostas
P

Oi galera…estou tentando fazer um parseDouble pq qro pegar valores digitas em várias textfield e transforma-las em matriz
pra calcular um pivotamento…
Minha duvida é a seguinte…como eu pego essas muitas variáveis pra formar o array bidimensional? Eu preciso passar varias
strings de uma vez no parseDouble??

Me ajudem galera!!

Segue uma parte do codigo…

//queria pegar tbm k2, k3, k5....pra jogar em ant			
K1 = aplicação1_2.Tx1.getText();
K1 = K1.replace(',','.');
ant = Double.parseDouble(K1);

5 Respostas

A

Acho que você vai ter que fazer um for… não tem como fazer um parse de várias strings para vários doubles de uma vez…

P

mas funcionaria esse for?

A

se você fizer certo, funciona sim…

pelo que eu entendi vc vai ter uma string com os valores separados por espaço

você quebraria essa string num array de Strings com o StringUtils.split() por exemplo.

Dái faria o for percorrendo esse array e tranformando cada valor em double com o parseDouble().

Você vai precisar de um array de double para armazenar os valores…

P

Bem…na verdade o que eu to qrendo é fazer um programa que calcule um pivotamento…eu ate ja tenho e esta funcionando direitinho
Mas do jeito que está eu tenho que colocar os valores dentro do codigo, porem eu gostaria que tivesse uma janela para digitar os valores e pegar estas variaveis, montar a matriz, calcular e mostrar o resultado na tela…

Vou colocar o codigo completo aki pra vc ver como esta e o que eu ja tentei fazer com ele…

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Pivotamento  {
    
    	static String k1, k2,k3, k4, k5, k6, k7, k8, k9, k10, k11, k12;
	static double ln1, ln2, ln3, ln4, ln5, ln6, ln7, ln8, ln9, ln10, ln11, ln12;
    
    private static final double EPSILON = 1e-10;
    
    public static double[] resolve(double[][] A, double[] b) {
        int N  = b.length;
        String mate;

        for (int p = 0; p < N; p++) {

            // encontra pivo
            for (int i = p + 1; i < N; i++) {
                double alpha = A[i][p] / A[p][p];
                b[i] -= alpha * b[p];
                for (int j = p; j < N; j++) {
                    A[i][j] -= alpha * A[p][j];
                }
            }
        }
            double[] x = new double[N];
        for (int i = N - 1; i >= 0; i--) {
            double sum = 0.0;
            for (int j = i + 1; j < N; j++) {
                sum += A[i][j] * x[j];
            }
            x[i] = (b[i] - sum) / A[i][i];
        }
        return x;
                   }
    public static void main(String[] args) {
        int N = 3;
               /* try{
                    k1 = aplicação1_2.Tx1.getText();
			k1 = k1.replace(',','.');
			ln1 = Double.parseDouble(k1);
                        
			k2 = aplicação1_2.Tx2.getText();
			k2 = k2.replace(',','.');
			ln2 = Double.parseDouble(k2);
                        
                        k3 = aplicação1_2.Tx3.getText();
                        k3 = k3.replace(',', ',');
                        ln3 = Double.parseDouble(k3);
                        
                        k4 = aplicação1_2.Tx4.getText();
                        k4 = k4.replace(',', ',');
                        ln4 = Double.parseDouble(k4);
                        
                        k5 = aplicação1_2.Tx5.getText();
                        k5 = k5.replace(',', ',');
                        ln5 = Double.parseDouble(k5);
                        
                        k6 = aplicação1_2.Tx6.getText();
                        k6 = k6.replace(',', ',');
                        ln6 = Double.parseDouble(k6);
                        
                        k7 = aplicação1_2.Tx7.getText();
                        k7 = k7.replace(',', ',');
                        ln7 = Double.parseDouble(k7);
                        
                        k8 = aplicação1_2.Tx8.getText();
                        k8 = k8.replace(',', ',');
                        ln8 = Double.parseDouble(k8);
                        
                        k9 = aplicação1_2.Tx9.getText();
                        k9 = k9.replace(',', ',');
                        ln9 = Double.parseDouble(k9);
                        
                        k10 = aplicação1_2.Tx10.getText();
                        k10 = k10.replace(',', ',');
                        ln10 = Double.parseDouble(k10);
                        
                        k11 = aplicação1_2.Tx11.getText();
                        k11 = k11.replace(',', ',');
                        ln11 = Double.parseDouble(k11);
                        
                        k12 = aplicação1_2.Tx12.getText();
                        k12 = k12.replace(',', ',');
                        ln12 = Double.parseDouble(k12);
			
                }
			
        catch(NumberFormatException ex)
		{
			JOptionPane.showMessageDialog(null,"Digite apenas números !","Erro !", 0);
		}*/
        
        double[][] A = { { ln1, ln2, ln3 },
                         { ln4, ln5, ln6 },
                         { ln7, ln8, ln9 },
                       };
        double[] b = { ln10, ln11, ln12 };
        double[] x = resolve(A, b);
	String[] letras = {"x","y","z"};
       
        for (int i = 0; i < N; i++) {
            JOptionPane.showMessageDialog(null,"O "+letras[i]+" encontrado é ="+x [i]);
           // System.out.println(letras[i] + " = " + x[i]);
        }
    }
}

Ja tenho a classe que monta a tela onde o usuario vai digitar os valores, ela chama esta ai acima…so que na verdade nao esta chamando.

P

Aeee…galera vlw pela ajuda…
:confused:
Agora deu certinho…

Criado 13 de junho de 2008
Ultima resposta 13 de jun. de 2008
Respostas 5
Participantes 2