2012-12-30 15 views
7

में कनवर्ट नहीं कर रहा है यह कोड मैंने double को int में अपवाद प्राप्त करने के लिए लिखा है।डबल एक int

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot cast from Double to int 

यह इस

Double d = 10.9; 

अपने त्रुटि है मेरी कोड

Double d = 10.9;  
int i = (int)(d); 

उत्तर

8

Double आदिम double के शीर्ष पर एक आवरण वर्ग है। इसे double पर डाला जा सकता है, लेकिन इसे सीधे int पर नहीं डाला जा सकता है।

आप Double के बजाय double उपयोग करते हैं, यह संकलन होगा:

double d = 10.9;  
int i = (int)(d); 

तुम भी एक डाली double के बीच में, इस तरह जोड़ सकते हैं:

int i = (int)((double)d); 
2

है। आप डेटा प्रकारों के बजाय रैपर कक्षाओं का उपयोग कर रहे हैं।

double d = 10.9; 
3

thats का उपयोग करें, क्योंकि आप नहीं कर सकते unboxing मिश्रण और कास्टिंग (अपने Double एक डबल primitive को बदलने)। कोशिश

int i = (int)(d.doubleValue()); 
+0

टाइपो 'convertig'। 'एन' गायब है। –

0

आप आवरण डाली नहीं कर सकता सीधे int की तरह प्राचीन से प्राचीन प्रकार की तरह। लिंक का पालन

int i = (int)((double)d);

अधिक जांच के लिए - -

आप इस कोशिश कर सकते हैं http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

+0

'आप रैपर को डबल से आदिम प्रकार की तरह सीधे नहीं डाले जा सकते हैं।' हमेशा नहीं '(डबल) नया इंटीजर (5);' काम करेगा। – BaSsGaz

संबंधित मुद्दे