Jasvant Singh Dosanjh Jasvant Singh Dosanjh - 2 months ago 14
Java Question

Exception in thread "main" java.lang.NumberFormatException: empty String FloatingDecimal & parseDouble

I am getting an error. For some reason the error isn't showing up when I compile the code:

//This is the error I get
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at Project3A.main(Project3A.java:42)

//Code starts here
import java.util.scanner;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
import java.util.Locate;
import java.text.NumberFormat;

public class Project3A
{
public static void main(String[] args)
{
int numloaves = 0;
int nummilk = 0;
double lbscheese = 0.00;
double brdperloaf = 1.50;
double milkperqrt = 1.00;
double chseperlbs = 0.50;
NumberFormat moneyFormat = NumberFormat.getCurrencyInstance(Locale.US);

Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of loaves of bread: ");
int numloaves = sc.nextInt();

Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of quarts of milk: ");
int nummilk = sc.nextInt();

Scanner sc = new Scanner(System.in);
System.ot.println("Enter the number of pounds of cheese: ");
int chseperlbs = sc.nextInt();

double brdcst = (numloaves * brdperloaves);
double mlkcst = (nummilk * milkperqrt);
double chsecst = (lbscheese * chseperlbs);
double ttlcost = (brdcst + mlkcst + chsecst);

String inputStr = JOptionPane.showInputDialog(null, "Enter number of apples");
double value = Double.parseDouble(" ");

System.out.println("Cost of Bread: " + brdcst);
System.out.println("Cost of Milk: " + mlkcst);
System.out.println("Cost of Cheese: " + chsecst);

double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
JOptionPane.showMessageDialog(null, "Total Cost of bread, milk and cheese is " + df.format(d));
System.out.println(df.format(d));
}
}

Answer

This isn't valid Java:

JOptionPane.showInputDialog,"Enter number of apples";

When calling any method you must include the appropriate parameters within parenthesis, e.g.

myMethodCall(1, 2, 3);

Your call uses no parenthesis and doesn't make sense. Read the JOptionPane API to see what parameters you may need.