Converter números binários fracionários para decimal e vice

Pessoal,

Preciso fazer um programa que converta números decimais fracionários para binário e vice versa, o programa que fiz abaixo nao esta fazendo esta função, gostaria da ajuda de voces.

import javax.swing.*;

public class ExercicioArley
{
public static void main (String args[])
{
int base,numero,tamanho,acum,contador,loop,valor;
String binario;
double acum2,valor_decimal;

	binario = "";
	contador=0;
	acum=0;
	acum2=0;
	tamanho = 0;
	valor_decimal=0;
	base = 2;

while ((base==0) || (base==2)|| (base==10))
{			
	numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero a ser convertido"));
	base = Integer.parseInt(JOptionPane.showInputDialog("Qual é a base do número " + numero + " (2 ou 10)"));

	if ((base!=2) && (base!=10))
	 	{
	 	JOptionPane.showMessageDialog(null,base + " não é uma base compatível");
	    }
	else
		{
		if (base ==10)
		// resolve os números decimais.
		{
		valor = numero;
		
		binario = "";	
		
		while((valor/2)>=1)
			{
			acum = valor%2;
			binario = acum + binario;
			valor = valor / 2;
			if (valor == 1)
				{
					binario = "1" + binario;
				}
			}
			System.out.println("O numero " + numero + " base(" + base + ")" + " - " + binario + "\n");
			//JOptionPane.showMessageDialog(null,"O número convertido em binário é " + binario);
		}
		else
		{
		// resolve os números binários.	
	
		String bin2 = String.valueOf(numero);
		tamanho = bin2.length();
		loop=0;
		acum2 = 0;
		while (contador!=tamanho) 
		{
		tamanho--;
		int x = Integer.parseInt("" + bin2.charAt(tamanho));
		

		valor_decimal = x * (Math.pow(2,loop));
					
		acum2 = acum2 + valor_decimal;	
		loop++;
		}
		//JOptionPane.showMessageDialog(null,"O valor em decimal é de " + acum2);
		System.out.println("O numero " + numero + " base(" + base + ")" + " - " + acum2 + "\n");
		}	

		}
	}
}

}