मैं अपने प्रोजेक्ट के लिए कुछ गणना गणना करने के लिए कर रहे हैं प्रकार संख्या और double
के दो सरणी क्रमशः कोशिश कर रहा हूँ और मैं के लिए
y2= (double) molWt[x];
प्रकार एक संख्या कास्टिंग दोगुना करने के लिए
molWt
और dist
java.lang.ClassCastException
निम्नलिखित मिलता है।
java.lang.ClassCastException: java.lang.Integer में ढाला नहीं जा सकता java.lang.Double
public Double calcData(Number[] molWt, Double[] dist, String unk) {
Double y2,y1, newY = null;
Double x1,x2;
Double unkn = Double.parseDouble(unk.toString());
Double prev=0d;
Double slope;
for (int x = 0; x < dist.length; x++)
if (unkn > prev && unkn < dist[x]) {
y2 = (double) molWt[x];
y1 = (double) molWt[x - 1];
x2 = dist[x];
x1 = dist[x - 1];
slope = ((y2 - y1)/(x2 - x1));
newY = slope * (unkn - x1) + y1;
} else {
prev = dist[x];
}
return newY;
}
अच्छी तरह से 'molwt' में कम से कम एक' इंटीजर' है। क्या यह एक आश्चर्य है? आपका वास्तविक सवाल क्या है? – Radiodef
मैं नहीं देख सकता कि आप 'नंबर' का उपयोग क्यों कर रहे हैं। दोनों सरणी 'डबल [] 'होना चाहिए। मेरी राय में, 'संख्या' पूरी तरह से बेकार है। –
@PaulBoddington द्वारा टिप्पणी करने के लिए अनुवर्ती, आप प्राचीन 'डबल' के बजाय बॉक्स किए गए' डबल 'का उपयोग क्यों कर रहे हैं? क्या वे 'शून्य' हो सकते हैं? यदि ऐसा है, तो आपका कोड एक भयानक मौत मर जाएगा। – Andreas