मैं, सी में फ्लोट करने के लिए डबल कन्वर्ट करने के लिए चाहता था, लेकिन बिना किसी परिवर्तन के बिल्कुल संभव के रूप में दशमलव बिंदु संरक्षित करने के लिए चाहता था ...सी:, फ्लोट करने के लिए डबल परिवर्तित दशमलव बिंदु परिशुद्धता संरक्षण
उदाहरण के लिए, चलो मैं मान लीजिए ,
double d = 0.1108;
double dd = 639728.170000;
double ddd = 345.2345678
अब मुझे ठीक कर लें मैं गलत हूँ मुझे पता है कि चल बिन्दु परिशुद्धता डॉट के बाद के बारे में 5 संख्या है। क्या मैं डॉट के बाद उन पांच नंबरों को ठीक कर सकता हूं जैसे डबल था? इतनी के रूप में है कि ऊपर दिए गए परिणामों इस प्रकार है:
float f = x(d);
float ff = x(dd);
float fff = x(ddd);
printf("%f\n%f\n%f\n", f, ff, fff);
यह
0.1108
639728.17000
345.23456
परिशुद्धता सीमा के बाद सभी अंक (जो मैं 5 के रूप में मानते हैं) छोटा किया जा जाएगा प्रिंट चाहिए।
चल बिन्दु परिशुद्धता और अधिक सही रूप में 'सार्थक अंकों की संख्या' कहा गया है के बजाय 'नंबर दशमलव स्थान के बाद अंकों का '। 12345678.12345 अधिकतर फ्लोट द्वारा विशेष रूप से सटीक रूप से प्रस्तुत नहीं किया जा सकता है। –
फ़्लोटिंग-पॉइंट नंबरों के प्रतिनिधित्व के बारे में गलतफहमी के अलावा, जिस पर टिप्पणी की गई है और उत्तर दिया गया है, आप जिस फ़ंक्शन 'एक्स' की तलाश में हैं, वह दोहरी से फ्लोट' (फ्लोट) 'है। यदि आपने गोलिंग मोड को अपने निकटतम से भी नहीं बदला है, तो भी यह कास्ट 'फ्लोट' की गणना करता है जो कि आप 'डबल' के सबसे नज़दीक हैं जो आप परिवर्तित कर रहे हैं। इस से कोई बेहतर रूपांतरण नहीं है, इसलिए यदि यह आपके स्वाद के लिए बहुत अधिक सटीकता खो देता है, तो अपने 'डबल' को उनके जैसा रखें। –
छंटनी उन्हें परिवर्तित करने का सबसे सटीक तरीका नहीं है - 345.2345678 345.23457 के करीब 345.23456 – caf