मैं C Programming Language, 2nd Edition पढ़कर सी सीखने की कोशिश कर रहा हूं। मैं कुछ प्रोग्रामिंग अनुभव है, लेकिन नहीं सीजब एक printf में% d का उपयोग किया जाता है तो फ्लोट चर के साथ क्या होता है?
साथ मैं अध्याय 1 में वर्तमान में कर रहा हूँ मैं है निम्नलिखित कोड:
A: 0.000000 B: 0.15
A: 1.100000 B: 1.25
A: 2.200000 B: 2.35
:
float f;
for (f = 0.0; f <= 3; f += 1.1)
printf("A: %3f B: %6.2f\n", f, f + 0.15);
यह उत्पादन प्रिंट ठीक लग रहा है।
printf("A: %3d B: %6.2f\n", f, f + 0.15);
नई उत्पादन
A: 0 B: 0.00
A: -1610612736 B: 0.00
A: -1610612736 B: -625777476808257557292155887552002761191109083510753486844893290688350183831589633800863219712.00
यहाँ क्या हो रहा है यह है:
अब मैं printf निम्न प्रकार से परिवर्तित? मैं फ्लोट को int में परिवर्तित करने की अपेक्षा करता हूं क्योंकि मैंने% d का उपयोग किया था, लेकिन ऐसा नहीं हुआ। इसके अलावा, मूल्य बी गलत क्यों हुआ? यहां एफ के साथ क्या हुआ?
आपने इसे एक int में बदलने के लिए नहीं कहा था, आपने कहा था कि यह ** ** एक int था! कचरा अंदर कचरा बाहर। –