में 0.1 की प्रिंटिंग वृद्धियां वर्तमान में स्टीव मैककनेल द्वारा कोड पूर्ण को पढ़ रही है, विशेष रूप से पृष्ठ 2 9 5 फ्लोटिंग-पॉइंट नंबरों पर।सी #
जब मैं निम्नलिखित कोड भाग गया:
double nominal = 1.0;
double sum = 0.0;
for (int i = 0; i < 10; i++)
{
sum += 0.1;
Console.WriteLine("sum: " + sum.ToString());
}
if (equals(nominal,sum))
{
Console.WriteLine("Numbers are the same");
}
else
{
Console.WriteLine("Numbers are different");
}
मैं 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 का प्रिंट आउट मिला 0.9 1.0 नंबर अलग हैं
मैं कैसे ' ऐसा लगता है कि उत्पादन होने वाला अनुमान है? अर्थात्: 0,1 0,2 0,30000000000000004 0,4 0,5 0,6 0,7 0,79999999999999999 0,89999999999999999 0,99999999999999999 नंबर अलग
सी # राउंडिंग संख्या है जब मैं स्ट्रिंग के लिए डबल से एक अंतर्निहित रूपांतरण कर रहे हैं? मुझे ऐसा लगता है क्योंकि जब मैं एप्लिकेशन को डीबग करता हूं और लूप के माध्यम से कदम उठाता हूं, तो मैं गैर-समाप्ति दोहराव दशमलव संख्या देख सकता हूं। तुम क्या सोचते हो? क्या मैं सही हूं या गलत हूं?
आह धन्यवाद। मुझे आपके द्वारा दिए गए आउटपुट के साथ बहुत सटीक होना चाहिए था। जब मैंने 0.7 99 99 99 99 99 99 99 99 जैसे लंबी दशमलव संख्याएं दीं, तो मैं उन अंकों की संख्या पर ध्यान नहीं दे रहा था जिनका उपयोग मैं कर रहा था। – burnt1ce