सबसे पहले, अपने को ध्यान में रखना है कि 0.6
सही रूप में लेकिन यह सही रूप में एक double
(चल बिन्दु गणित की अशुद्धियों के रूप में प्रतिनिधित्व किया जा सकता है एक float
के रूप में प्रतिनिधित्व नहीं किया जा सकता अच्छी तरह से प्रलेखित रहे हैं, इसकी स्पष्ट नहीं करता है, तो महत्वपूर्ण क्यों 0.6
नहीं कर सकते एक फ्लोट के रूप में सटीक रूप से प्रतिनिधित्व किया जाना चाहिए, this link)
कारण आप उपरोक्त व्यवहार को क्यों देख रहे हैं संकलक के लिए नीचे है - यदि आप परावर्तक में संकलित असेंबली को देखते हैं तो यहां क्या हो रहा है थोड़ा स्पष्ट है:
(अद्यतन मैं कोड बदल दिया है ताकि यह Console.WriteLine
उपयोग नहीं करता है, के रूप में मैंने महसूस किया कि संकलक आप के लिए एक अधिभार, जो स्थिति उलझन में चुनने गया था)
// As written in source
var j = (double)(float)0.6;
var k = (double)0.6f;
var l = (double)(6/10f);
var m = (double)(float)(6/10f);
// Code as seen by Reflector
double j = 0.60000002384185791;
double k = 0.60000002384185791;
double l = 0.6;
double m = 0.6;
क्यों संकलक करने के लिए चुनता
// Code
var a = 0.6;
var b = (double)0.6;
var c = 0.6f;
var d = (float)0.6;
var e = 6/10;
var f = 6/(10f);
var g = (float)(6/10);
var h = 6/10f;
var i = (double)6/10;
// Prints out 0.60000002384185791
double n = (float)0.6;
double o = f;
// As seen by Reflector
double a = 0.6;
double b = 0.6;
float c = 0.6f;
float d = 0.6f;
int e = 0;
float f = 0.6f;
float g = 0f;
float h = 0.6f;
double i = 0.6;
double n = 0.60000002384185791;
double o = f;
संकलक केवल अब क्या करना लगता है: इस खास तरह से संकलन (FYI करें, इस अनुकूलन सब के साथ बंद कर दिया है)
कुछ रोचक अन्य मामलों मुझे परे है कुछ विशेष मामलों में ओव चाल, यह केवल तब क्यों करता है जब डबल पर कास्टिंग पूरी तरह से मेरे बाहर है!
बाकी समय ऐसा लगता है कि फ्लोटिंग पॉइंट अंकगणित बनाने के लिए कुछ चालबाजी करने के लिए प्रतीत होता है जहां वास्तव में यह सामान्य रूप से नहीं होता है।
जावा में रास्ते में, परिणाम सभी ऊपर के लिए 0.6000000238418579 है। –
मैं तत्काल खिड़की का उपयोग कर रहा हूँ। मैंने प्रोग्राम में परीक्षण किया है, वे बराबर नहीं हैं।तो यह फोरामिंग का मामला नहीं है। – zhy2002
http://stackoverflow.com/questions/1778368/python-float-str-float-weirdness – Sharun