我不確定這裏發生了什麼,但這裏是我遇到問題的一部分(還有其他幾個,但我認爲如果可以的話弄清楚這裏的邏輯我可以在其他地方應用)。 我最近有一個問題,我在使用點,但不能得到小數,所以,as suggested,我切換到point2D允許雙打。由於切換我得到的錯誤,我似乎無法理解如何解決,因爲我沒有看到原因(我知道改變到point2D觸發它,但我看不到連接)。運算符*未定義爲參數類型double,Point2D.Double
我有以下代碼:
Double x_data = (Double) data.get(k);
for (int c = 0; c <= 100; c++) { //the c variable caps the percent
double percent = roundTwoDecimals(c*.01);
double value1 =(sum - percent * x_data);
數據的Point2D(這我鑄造將翻一番,總和變量我送的這個方法的確是一個整數,但我的列表在日食中,我在'percent * x_data'下面看到了可怕的紅色下劃線,我搜索了一下,發現這個錯誤通常是由於某個人試圖乘以一個字符串或其他東西引起的,但我相當肯定這些都是雙打。現在得到以下錯誤:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The operator * is undefined for the argument type(s) double, Point2D.Double
The operator * is undefined for the argument type(s) double, Point2D.Double
Syntax error, insert ")" to complete ArgumentList
The operator * is undefined for the argument type(s) double, Point2D.Double
據我所知,涉及這個過程的事情要麼是雙重的,要麼是雙倍的,所以我不確定爲什麼Point2D會涉及這些運營商。
我也有一個,限制了小數位的方法:
static double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.###");
return Double.valueOf(twoDForm.format(d));
但Double.valueOf不是一個選項了,所以我上的錯誤(錯誤的Point2D)(繞過它,我只是現在返回d而不限制小數)。
請幫忙。我認爲point2D沒有問題,但我必須在結構上做錯了什麼。
由於
從我在異常中看到的內容中,您試圖使用'*'運算符將'double'類型的變量與'Point2D.Double'類型相乘。 Java VM告訴你它不知道該怎麼做。也許你已經導入了'Point2D.Double',它覆蓋了'Double',它是本地類型'double'的對象版本? – len 2012-03-26 16:47:41