गुजर फ्लोट करने के लिए एक समारोह में C++ के लिए प्रकट होता है बदल परिशुद्धता

0

सवाल

यह एक बहुत ही अपरिपक्व सवाल है, लेकिन मैं उत्सुक हूँ पता करने के लिए इस के पीछे कारण है: -अगर मैं डिबग निम्नलिखित सी++ कोड:

void floatreturn(float i){
      //nothing
}

int main(){
    float a = 23.976;
    floatreturn(a);
    return 0;
}

निगरानी पारित मूल्य के साथ, यह प्रतीत होता है 23.9759998 में प्रवेश जब floatreturn. एक परिणाम के रूप में, किसी भी प्रसंस्करण के मूल्य समारोह में की आवश्यकता होगी करने के लिए मैन्युअल रूप से tweak परिशुद्धता. वहाँ है एक इस के लिए कारण है, और किसी भी तरह से इसे से बचने के लिए?

c++ floating-point
2021-11-24 04:32:57
1

सबसे अच्छा जवाब

0

इस मुद्दे को पहले भी हुआ floatreturn(a);.
यह में हुआ float a = 23.976;
floatreturn(a); अप्रासंगिक है ।

वहाँ रहे हैं के बारे में 2^32 विभिन्न मूल्यों है कि float कर सकते हैं सांकेतिक शब्दों में बदलना बताएंगे. 23.976 उनमें से एक नहीं है. निकटतम encodable float है के बारे में 23.9759998...

से बचने के लिए, मूल्यों का उपयोग कर सकते हैं कि वास्तव में सांकेतिक शब्दों में बदलना के रूप में एक float या बर्दाश्त बंद किया जा रहा है - के बारे में 1 भाग 2 में24

2021-11-24 16:43:03

धन्यवाद मार्क के लिए लिंक और chux के लिए संक्षिप्त जवाब है.
mv_p

बस एक शैक्षिक बिंदु के लिए मेरे: क्यों करता है, अदालत के लिए डिफ़ॉल्ट एक की परिशुद्धता के 3 दशमलव अगर हम पुनर्मुद्रण चर की स्थापना के बिना परिशुद्धता उत्पादन के लिए? मैं मिलता है कि भंडारण नाव हमेशा वापसी निकटतम बाइनरी फ्लोट संभव है, और है कि अदालत गोलाई है.
mv_p

@mv_p क्या था सटीक उत्पादन में तुम्हें देखा था?
chux - Reinstate Monica

एक साधारण के साथ 'नाव x = 23.976; अदालत << x;' मैं देख रहा हूँ "23.976"
mv_p

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में