"possible loss of precision, found double, required int" HELP
I need these variables to be doubles but it keeps saying an integer is required. My code does not have one integer so I cant have declared something wrong anywhere. Am I doing something wrong in the switch statement?
Here's my code:
Code :
/** Lotto.java
* Programming Project, NCI
*
* Date: 9 Nov 2011
* @author Katie
*
*/
import javabook.*;
class LottoApp
{
public static void main (String args[]){
//Declare variables
double money;
double bet;
double a;
double b;
double c;
double d;
double e;
double f;
double g;
double h;
double i;
double j;
double k;
double l;
double m;
double n;
double o;
double p;
//Declare objects
MainWindow mWindow;
InputBox iBox;
OutputBox oBox;
//Create Objects
mWindow = new MainWindow();
iBox = new InputBox(mWindow);
oBox = new OutputBox(mWindow);
//Use objects
mWindow.show();
oBox.show();
//get Input
money = iBox.getDouble("Please enter an amount. Note that one line costs 0.50 cent");
bet = iBox.getDouble("How much would you like to bet?");
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
f = 0;
g = 0;
h = 0;
i = 0;
j = 0;
k = 0;
l = 0;
m = 0;
n = 0;
o = 0;
p = 0;
//process
if (bet >= 2.00)
{
a = iBox.getDouble("enter first number");
b = iBox.getDouble("enter second number");
c = iBox.getDouble("enter third number");
d = iBox.getDouble("enter fourth number");
e = iBox.getDouble("enter fifth number");
f = iBox.getDouble("enter sixth number");
g = iBox.getDouble("enter seventh number");
h = iBox.getDouble("enter eighth number");
i = iBox.getDouble("enter ninth number");
j = iBox.getDouble("enter tenth number");
k = iBox.getDouble("enter elleventh number");
l = iBox.getDouble("enter twelfth number");
m = iBox.getDouble("enter thirteenth number");
n = iBox.getDouble("enter fourteenth number");
o = iBox.getDouble("enter fifteenth number");
p = iBox.getDouble("enter sixteenth number");
}
else if (bet >= 1.50)
{
a = iBox.getDouble("enter first number");
b = iBox.getDouble("enter second number");
c = iBox.getDouble("enter third number");
d = iBox.getDouble("enter fourth number");
e = iBox.getDouble("enter fifth number");
f = iBox.getDouble("enter sixth number");
g = iBox.getDouble("enter seventh number");
h = iBox.getDouble("enter eighth number");
i = iBox.getDouble("enter ninth number");
j = iBox.getDouble("enter tenth number");
k = iBox.getDouble("enter elleventh number");
l = iBox.getDouble("enter twelfth number");
}
else if (bet >= 1.00)
{
a = iBox.getDouble("enter first number");
b = iBox.getDouble("enter second number");
c = iBox.getDouble("enter third number");
d = iBox.getDouble("enter fourth number");
e = iBox.getDouble("enter fifth number");
f = iBox.getDouble("enter sixth number");
g = iBox.getDouble("enter seventh number");
h = iBox.getDouble("enter eighth number");
}
else if (bet >= 0.50)
{
a = iBox.getDouble("enter first number");
b = iBox.getDouble("enter second number");
c = iBox.getDouble("enter third number");
d = iBox.getDouble("enter fourth number");
}
else
{
oBox.print("You have insufficient funds");
}
//Output
switch (bet)
{
case 2:
oBox.print(" The numbers you have chosen are: " + a + ", " + b + ", " + c + ", " + d + ", " + e + ", " + f + ", " + g + ", " + h + ", " + i + ", " + j + ", " + k + ", " + l + ", " + m + ", " + n + ", " + o + " & " + p );
break;
case 150:
oBox.print(" The numbers you have chosen are: " + a + ", " + b + ", " + c + ", " + d + ", " + e + ", " + f + ", " + g + ", " + h + ", " + i + ", " + j + ", " + k + " & " + l );
break;
case 1:
oBox.print(" The numbers you have chosen are: " + a + ", " + b + ", " + c + ", " + d + ", " + e + ", " + f + ", " + g + " & " + h );
break;
case 50:
oBox.print(" The numbers you have chosen are: " + a + ", " + b + ", " + c + " & " + d );
break;
default:
oBox.print("Invalid Entry");
break;
}
}
}
Re: "possible loss of precision, found double, required int" HELP
Can you post the text of the error message that shows the source line with the problem?
You can get rid of some of the error messages by using a cast to tell the compiler that you want to convert the double to int.
1 Attachment(s)
Re: "possible loss of precision, found double, required int" HELP
Attachment 832
Here's a screenshot of the error. As you can see I've tried what you said and type casted it and still no joy :(
Code :
/** Lotto.java
* Programming Project, NCI
*
* Date: 9 Nov 2011
* @author Katie Donohoe
*
*/
import javabook.*;
import java.util.Random;
class Lotto2
{
public static void main (String args[]){
//Declare variables
double money;
int money1 = (int)money;
double bet;
int bet1 = (int)bet;
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;
int i;
int j;
int k;
int l;
int m;
int n;
int o;
int p;
//Declare objects
MainWindow mWindow;
InputBox iBox;
OutputBox oBox;
//Create Objects
mWindow = new MainWindow();
iBox = new InputBox(mWindow);
oBox = new OutputBox(mWindow);
//Use objects
mWindow.show();
oBox.show();
//get Input
money = iBox.getDouble("Please enter an amount. Note that one line costs 0.50 cent");
bet = iBox.getDouble("How much would you like to bet?");
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
f = 0;
g = 0;
h = 0;
i = 0;
j = 0;
k = 0;
l = 0;
m = 0;
n = 0;
o = 0;
p = 0;
//process
if (money >= 2.00 && bet == 2.00)
{
a = iBox.getInteger("enter first number");
b = iBox.getInteger("enter second number");
c = iBox.getInteger("enter third number");
d = iBox.getInteger("enter fourth number");
e = iBox.getInteger("enter fifth number");
f = iBox.getInteger("enter sixth number");
g = iBox.getInteger("enter seventh number");
h = iBox.getInteger("enter eighth number");
i = iBox.getInteger("enter ninth number");
j = iBox.getInteger("enter tenth number");
k = iBox.getInteger("enter elleventh number");
l = iBox.getInteger("enter twelfth number");
m = iBox.getInteger("enter thirteenth number");
n = iBox.getInteger("enter fourteenth number");
o = iBox.getInteger("enter fifteenth number");
p = iBox.getInteger("enter sixteenth number");
}
else if (money >= 1.50 && bet == 1.50)
{
a = iBox.getInteger("enter first number");
b = iBox.getInteger("enter second number");
c = iBox.getInteger("enter third number");
d = iBox.getInteger("enter fourth number");
e = iBox.getInteger("enter fifth number");
f = iBox.getInteger("enter sixth number");
g = iBox.getInteger("enter seventh number");
h = iBox.getInteger("enter eighth number");
i = iBox.getInteger("enter ninth number");
j = iBox.getInteger("enter tenth number");
k = iBox.getInteger("enter elleventh number");
l = iBox.getInteger("enter twelfth number");
}
else if (money >= 1.00 && bet == 1.00)
{
a = iBox.getInteger("enter first number");
b = iBox.getInteger("enter second number");
c = iBox.getInteger("enter third number");
d = iBox.getInteger("enter fourth number");
e = iBox.getInteger("enter fifth number");
f = iBox.getInteger("enter sixth number");
g = iBox.getInteger("enter seventh number");
h = iBox.getInteger("enter eighth number");
}
else if (money >= 0.50 && bet == 0.50)
{
a = iBox.getInteger("enter first number");
b = iBox.getInteger("enter second number");
c = iBox.getInteger("enter third number");
d = iBox.getInteger("enter fourth number");
}
else
{
oBox.print("You have insufficient funds");
}
//Output
switch (bet)
{
case 2.00:
oBox.println(" -- YOUR CHOSEN NUMBERS -- ");
oBox.println(" Line One: " + a + ", " + b + ", " + c + "& " + d);
oBox.print(" Line Two: " + e + ", " + f + ", " + g + "& " + h);
oBox.print(" Line Three: " + i + ", " + j + ", " + k + "& " + l);
oBox.print(" Line Four: " + m + ", " + n + ", " + o + " & " + p );
break;
case 1.50:
oBox.print(" -- YOUR CHOSEN NUMBERS -- ");
oBox.print(" Line One: " + a + ", " + b + ", " + c + "& " + d);
oBox.print(" Line Two: " + e + ", " + f + ", " + g + "& " + h);
oBox.print(" Line Three: " + i + ", " + j + ", " + k + " & " + l );
break;
case 1.00:
oBox.print(" -- YOUR CHOSEN NUMBERS -- ");
oBox.print(" Line One: " + a + ", " + b + ", " + c + " & " + d );
oBox.print(" Line Two: " + e + ", " + f + ", " + g + " & " + h );
break;
case 0.50:
oBox.println(" -- YOUR CHOSEN NUMBERS -- ");
oBox.println(" Line One: " + a + ", " + b + ", " + c + " & " + d );
break;
default:
oBox.println("Invalid Entry");
break;
}
}
}
Re: "possible loss of precision, found double, required int" HELP
Did you do the cast where the error is happening?
Where do you use the bet1 variable? You set bet1 to the value of bet before you assign a value to bet.
Don't you want to use the current value of bet and not the initial value?
The cast you have was done when the class was created. The value that bet has then is not related to the value of bet when your program executes.