में निम्नलिखित कोड काम करता है:डेटा प्रकार भ्रम सी
int main(void)
{
float f = get_float();
int i = round(f*100);
printf("%i\n", i);
}
फिर भी, त्रुटि उत्पन्न करता है, तो इस तरह से कोडिंग:
printf("%i\n", round(1.21*100));
आउटपुट का कहना है round(1.21*100)
float
है। तो, फिर
int i = round(f*100);
ठीक है?
जब एक 'float' मूल्य' int' मूल्यों को सौंपा गया है, एक आंतरिक रूपांतरण जगह लेता है। 'राउंड() 'एक डबल मान देता है, इसलिए यदि कोई रूपांतरण नहीं किया जाता है तो यह मान दोहरा रहता है। इस निर्दिष्ट मामले में 'printf ("% i \ n", राउंड (1.21 * 100));' कोई रूपांतरण नहीं किया जाता है, इसलिए इसे फ्लोट वैल्यू प्रिंट करने के लिए '% f' निर्दिष्ट करने की आवश्यकता होती है। – Sma