के बीच भाव में डबल अगर मैं है निम्नलिखित अभिव्यक्ति:अंतर्निहित रूपांतरण/नाव को बढ़ावा देने या सी # और जावा
byte A = 69;
int B = 123;
long C =;
float D = 4.9f;
double E = 11.11;
double X = (B * 100) + 338.1 - (E/B)/C;
double X1 = (B * 100) + (A * D) - (E/B)/C;
// JAVA - lost precision
System.out.println(X); // 12638.099971861307
System.out.println(X1); // 12638.099581236307
// C# - almost the same
Console.WriteLine(X); // 12638.0999718613
Console.WriteLine(X1) // 12638.0999784417
मैंने देखा है कि जावा एक्स से परिशुद्धता जहां 338.1 निहित डबल जबकि सी # लगभग नहीं है खो देता है । मुझे समझ में नहीं आता क्यों 338.1 फ्लोट और डबल में बराबर है। डॉट के बाद केवल एक अंक है।
338.1 फ्लोट और डबल में समान नहीं है। 338.1 दोहराता की सटीक द्विआधारी विस्तार हमेशा के लिए है, इसलिए जब एक डबल के रूप में व्यक्त है, यह जब नाव के रूप में व्यक्त की तुलना में और भी बहुत कुछ गैर शून्य अंक हैं। –
कृपया http://csharpindepth.com/Articles/General/FloatingPoint.aspx पढ़ें – Rohit