String mins = minsField.getText();
int Mins;
try
{
Mins = Integer.parseInt(mins);
}
catch (NumberFormatException e)
{
Mins = 0;
}
double hours = Mins / 60;
hours.setText(hoursminsfield);
问题是, Double cannot be dereferenced
。
编辑12年4月23日
double cannot be dereferenced
是,当你尝试调用一个原始的方法一些Java编译器会给出错误。 在我看来, double has no such method
会更有益的,但我怎么知道。
从你的代码,看来你认为你可以的文本表示复制hours
到hoursminfield
做hours.setText(hoursminfield); 这有几个错误:1)时间是一个double
这是一个基本类型,有可以在其上调用任何方法。 这是给你,你问的错误。 2)你不说什么类型的hoursminfield是,也许你还没有宣布呢。 3)这是不寻常通过具有它是参数的方法来设置的变量的值。 它有时会发生,但通常不会。
的代码,你似乎什么想要的线路有:
String hoursrminfield; // you better declare any variable you are using
// wrap hours in a Double, then use toString() on that Double
hoursminfield = Double.valueOf(hours).toString();
// or else a different way to wrap in a double using the Double constructor:
(new Double(hours)).toString();
// or else use the very helpful valueOf() method from the class String which will
// create a string version of any primitive type:
hoursminfield = String.valueOf(hours);
原来的答案(解决代码中的不同的问题):
在double hours = Mins / 60;
你将2 int
秒。 您将获得int
该部门的价值,因此,如果敏思= 43; 双小时=分钟] / 60; //分钟] / 60是一个int = 0。其分配给双小时使得//小时双重等于零。
你需要做的是:
double hours = Mins / ((double) 60);
或类似的东西,你需要你的部门的某些部分转换为double
,以迫使师做与double
秒且不int
秒。
您还没有指定的语言,但是,如果它的Java,有基本型之间有很大的区别double
和类Double
。
在任何情况下,你setText
似乎周围的错误的方式。 该setText
方法将属于数据字段,不是你想就摆在那里的数据:
hoursminsfield.setText (hours);
换句话说,你要设置的字段的文本,使用您刚刚计算出的两倍。 是否可以通过一个双是可能需要检查另当别论。
另一件事:
double hours = Mins / 60;
会,如果Mins
是integer`,给你一个整数值,你然后放入双。 这意味着它会被截断。 如果你想确保你保持精确的划分之后,你可以使用这样的:
double hours = (double) Mins / 60.0;
(虽然它可能只有那些改变一个工作,我宁愿让所有条款明确)。
这个怎么样的方式
double hours = Mins / 60.0
我总是用上面的语句,以获得双重价值