Helpme please

Jalev
27 de Febrero del 2006
Porfavor necesito ayuda con este programa apenas empiezo y no se como resolver este problema k tengo con la definicion de un dato les mando el programa y el error
import javax.swing.*;
class Gas
{
public static void main (String[]args)
{
String gal,din;
double g=3.785;
double d=1.025;
int b1,tot,op,op1;
gal=JOptionPane.showInputDialog("El total de galones es de:");
tot=Integer.parseInt(gal);
op1=(g*d)*tot;
JOptionPane.showMessageDialog(null,"El total a pagar es de:"+op1);
din=JOptionPane.showInputDialog("El efectivo es de :");
b1=Integer.parseInt(din);
op=(op1-b1);
JOptionPane.showMessageDialog(null,"Su cambio es de:"+op);
JOptionPane.showMessageDialog(null,"Gracias por su compra");
System.exit(0);
}
}

El erro k me marca es:
found : double
required: int
op1=(g*d)*tot;

y por mas k le cambio nomas no encuentro y se supone k el double es de mayor capacidad k el Int

cerodriguezl
27 de Febrero del 2006
El problema es que (g*d)*tot devuelve un double, y usted le está asignando ese valor a un int. Puede camabiar op1 a tipo double, o hacer un cast, como:

op1 = (int)( ( g * d ) * tot )
Sin embargo esto truncará el resultado, ya que es un int.
Espero haber ayudado.