Java 不能取消对Double的引用?

Java 不能取消对Double的引用?,java,double,Java,Double,问题是,Double不能被取消引用您还没有指定语言,但是如果是Java,基本类型Double和类Double之间有很大的区别 无论如何,您的setText似乎是错误的。setText方法属于数据字段,而不是您试图放入其中的数据: String mins = minsField.getText(); int Mins; try { Mins = Integer.parseInt(mins); } catch (NumberForma

问题是,
Double不能被取消引用

您还没有指定语言,但是如果是Java,基本类型
Double
和类
Double
之间有很大的区别

无论如何,您的
setText
似乎是错误的。
setText
方法属于数据字段,而不是您试图放入其中的数据:

String mins = minsField.getText(); 

    int Mins;
    try
    {
        Mins = Integer.parseInt(mins);

     }
     catch (NumberFormatException e)
     {
         Mins = 0;
     }

    double hours = Mins / 60;

    hours.setText(hoursminsfield);
换句话说,您希望使用刚才计算的双精度设置字段的文本。你是否能通过双倍考试是另一回事,可能需要检查一下

还有一件事:

hoursminsfield.setText (hours);
will,如果
Mins
是一个整数,则会给您一个整数值,然后将其转换为双精度。这意味着它将被截断。如果要确保在除法后保持精度,可以使用以下方法:

double hours = Mins / 60;
(虽然它可能只适用于其中的一个更改,但我更愿意明确所有术语)。

编辑4/23/12
double cannot dereference
是一些Java编译器在尝试调用原语上的方法时出现的错误。在我看来,
double没有这样的方法
会更有帮助,但我知道什么

从您的代码中,您似乎认为可以通过执行以下操作将
hours
的文本表示形式复制到
hoursminfield
hours.setText(hoursminfield); 这有几个错误: 1) hours是一个
double
,它是一个基本类型,没有可以调用的方法。这就是你所问的错误的原因。 2) 你没有说hoursminfield是什么类型,也许你还没有声明它。 3) 通过将变量作为方法的参数来设置变量的值是不常见的。有时会发生,但通常不会

执行您似乎想要的操作的代码行包括:

double hours = (double) Mins / 60.0;
原始答案(解决了代码中的另一个问题):
双倍小时=分钟/60您正在将两个
int
s分开。您将获得该除法的
int
值,因此如果 分钟=43; 双倍小时=分钟/60; //分钟/60是一个整数=0。将其分配为双倍小时会使 //小时等于零的双精度

您需要做的是:

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
,以便强制除法是用
double
s而不是
int
s来完成的。这样怎么样

double hours = Mins / ((double) 60);

我总是使用上面的语句来获得双精度值

是的,这是我的错,但是你能告诉我如何解决这个问题吗?请噢,是的。您不能对Double调用
setText
,因为Double只是一个数字。它没有
setText
方法,因为它没有任何文本…啊,好吧,我明白了,你能建议我该怎么做吗?因为我在这方面很新,几乎不知道该做什么do@Daniel,非常仔细地检查我的代码片段。我把你的时间换成了
hourminsfield
hours
。这是你的第一步。@Daniel,这不是留言板。如果你有一个不同的问题,问一个不同的问题。我正在提出另一个问题,如果你能给我一些建议,我将不胜感激。这很好,一个公认的正确答案,我被否决了!也许你们中的一位超级用户可以告诉我为什么。@mwengler它实际上并没有回答这个问题。问题是导致错误的原因
Double无法取消引用
。你的答案被接受的事实是无关紧要的(事实上只是让人们更多地注意到它是不正确的)。@Zshazz我想专家们会比提问者更清楚谁回答了他的问题。在回答提问者的真正意思之前,我知道下次要编辑这个问题。@Daniel,我看不出被接受的答案与你的问题有什么关系。当您修复原始问题时,您应该问另一个问题。如果您想使用小时作为双倍,则必须保留整数算术,如果您将整数与文字整数(如60)混合使用,则必须使用整数算术:
double hours=Mins/60改用像60.0这样的双精度文字。请不要对变量
int-Mins使用大写字母将其更改为
int minutes
int mints
。其他程序员会被误解,他们会认为
Mins
是一个类而不是一个变量。请看这个
double hours = Mins / 60.0