String mins = minsField.getText();
int Mins;
try
{
Mins = Integer.parseInt(mins);
}
catch (NumberFormatException e)
{
Mins = 0;
}
double hours = Mins / 60;
hours.setText(hoursminsfield);
The problem is that Double cannot be dereferenced
.
EDIT 4/23/12
double cannot be dereferenced
is the error some Java compilers give when you try to call a method on a primitive. It seems to medouble has no such method
would be more helpful, but what do I know.From your code, it seems you think you can copy a text representation of
hours
intohoursminfield
by doing hours.setText(hoursminfield); This has a few errors: 1) hours is adouble
which is a primitive type, there are NO methods you can call on it. This is what gives you the error you asked about. 2) you don't say what type hoursminfield is, maybe you haven't even declared it yet. 3) it is unusual to set the value of a variable by having it be the argument to a method. It happens sometimes, but not usually.The lines of code that do what you seem to want are:
ORIGINAL ANSWER (addressed a different problem in your code):
In
double hours = Mins / 60;
you are dividing twoint
s. You will get theint
value of that division, so if Mins = 43; double hours = Mins / 60; // Mins / 60 is an int = 0. assigning it to double hours makes // hours a double equal to zero.What you need to do is:
or something like that, you need to cast some part of your division to a
double
in order to force the division to be done withdouble
s and notint
s.How about this way
I always use the above statement to get the double value
You haven't specified the language but, if it's Java, there's a big difference between the basic type
double
and the classDouble
.In any case, your
setText
seems the wrong way around. ThesetText
method would belong to the data field, not the data you're trying to put in there:In other words, you want to set the text of the field, using the double you just calculated. Whether you can pass a double is a different matter which may need to be examined.
Another thing:
will, if
Mins
is an integer`, give you an integer value which you then put into a double. That means it will be truncated. If you want to ensure you keep precision following the division, you can use something like:(though it may work with only one of those changes, I prefer to make all terms explicit).