मेरे पास एक डबल "138630.78380386264"
है और मैं इसे दशमलव में परिवर्तित करना चाहता हूं, हालांकि जब मैं ऐसा करता हूं तो मैं इसे या तो कास्टिंग करके या Convert.ToDecimal()
का उपयोग करके करता हूं और मैं सटीकता खो देता हूं।सी # दशमलव से सटीक हानि
क्या चल रहा है? दोनों दशमलव और डबल के लिए इस नंबर का आयोजन कर सकते हैं:
double doub = double.Parse("138630.78380386264");
decimal dec = decimal.Parse("138630.78380386264");
string decs = dec.ToString("F17");
string doubse =DoubleConverter.ToExactString(doub);
string doubs = doub.ToString("F17");
decimal decC = (decimal) doub;
string doudeccs = decC.ToString("F17");
decimal decConv = Convert.ToDecimal(doub);
string doudecs = decConv.ToString("F17");
इसके अलावा: मैं डबल पर ToString()
कैसे प्राप्त कर सकते हैं बाहर डिबगर शो के रूप में एक ही परिणाम मुद्रित करने के लिए? जैसे 138630.78380386264
?
संभावित डुप्लिकेट [एक अंतर में सी # परिणामों में दशमलव से दो अंकों का रूपांतरण] (http://stackoverflow.com/questions/1584314/conversion-of-a-decimal-to-double-number-in- सी-परिणाम-में-एक अंतर) –
अच्छी तरह से कनवर्ट करें। टोडडिमल (somedouble) बराबर (दशमलव) के बराबर बराबर है, इसलिए कोई आश्चर्य नहीं है। मुझे यकीन नहीं है कि क्यों उस कलाकार ने अंतिम अंक को गोल किया है। – harold
@harold आप धोखा दिया गया था। यह निकटतम के लिए दौर करता है। डबल मान 386264 समाप्त होता है और 15 सिग अंजीर दशमलव 3863 समाप्त होता है। –