आपको फ्लोट का उपयोग तब तक नहीं करना चाहिए जब तक आपको करना न हो। 99% मामलों में, डबल एक बेहतर विकल्प है।
int x = 1111111111;
int y = 10000;
float f = (float) x / y;
double d = (double) x / y;
System.out.println("f= "+f);
System.out.println("d= "+d);
प्रिंट
f= 111111.12
d= 111111.1111
@ मैट की टिप्पणी के बाद।
फ्लोट में बहुत कम सटीकता (6-7 अंक) होती है और यह महत्वपूर्ण राउंडिंग त्रुटि को काफी आसानी से दिखाता है। डबल में सटीकता का एक और 9 अंक है। फ्लोट के बजाय डबल का उपयोग करने की लागत 99% मामलों में उल्लेखनीय है, लेकिन गोलाई त्रुटि के कारण एक सूक्ष्म बग की लागत बहुत अधिक है। इस कारण से, कई डेवलपर्स फ़्लोटिंग पॉइंट का उपयोग बिल्कुल नहीं करने की सलाह देते हैं और बिगडेसीमल की दृढ़ता से अनुशंसा करते हैं।
हालांकि मुझे पता है कि ज्यादातर मामलों में डबल का उपयोग किया जा सकता है बशर्ते कि समझदार गोलाई का उपयोग किया जाए ।
इस स्थिति में, इंट x में 32-बिट परिशुद्धता है, जबकि फ्लोट में 24-बिट परिशुद्धता है, यहां तक कि 1 से विभाजित करने पर एक गोल त्रुटि हो सकती है। दूसरी ओर डबल में 53-बिट परिशुद्धता होती है जो यथोचित सटीक परिणाम प्राप्त करने के लिए पर्याप्त से अधिक है।