जावा में बिगडेसिमल को डबल में कैसे बदलें?


112

हम जावा BigDecimalमें कैसे परिवर्तित होते हैं Double? मेरे पास एक आवश्यकता है जहां हमें तर्क के रूप में डबल का उपयोग करना होगा लेकिन हम मिल रहे हैं BigDecimalइसलिए मुझे इसे रूपांतरित BigDecimalकरना होगा Double


10
कैसे के बारे मेंnew BigDecimal(2).doubleValue()
Matthias

6
हमेशा एक प्रश्न पूछने से पहले प्रलेखन पढ़ें । आप अक्सर पाएंगे कि आपके प्रश्न का उत्तर दिया गया है। देखते हैं doubleValue()। (संकेत: एक विशिष्ट वर्ग के लिए दस्तावेज़ीकरण खोजने के लिए, बस वर्ग नाम की खोज करें, इसके बाद जावा सर्च करें। उदाहरण के लिए, इस दस्तावेज़ को खोजने के लिए, मैंने "BigDecimal Java" की खोज की)
जस्टिन

1
"मेरे पास एक आवश्यकता है जहां हमें तर्क के रूप में डबल का उपयोग करना होगा" आवश्यकता को बदल दें। BigDecimalजब तक आप इसे अंत-से-अंत तक उपयोग नहीं करते हैं , तब तक उपयोग करने का कोई मतलब नहीं है । यह आवश्यकता सटीकता से समझौता करती है; विनियामक अनुपालन से समझौता कर सकते हैं; और कार्रवाई में लापरवाही हो सकती है।
लोर्न

तुम क्यों प्रयोग कर रहे हैं Doubleऔर नहीं double। यह एक क्षेत्र है जो हो सकता है null?
पीटर लॉरी

@EJP का उपयोग करना उतना doubleबुरा नहीं है, लेकिन चूंकि इसमें 15+ अंकों की सटीकता सटीकता है, जो कि अधिकांश कार्यक्रमों की आवश्यकता से अधिक है, लेकिन मैं मानता हूं कि बिगडेसिमल का उपयोग करने का कोई मतलब नहीं है क्योंकि आप बग / जटिलता को जोड़ने की अधिक संभावना रखते हैं।
पीटर लॉरी

जवाबों:


225

आपको doubleValue()BigDecimal ऑब्जेक्ट से डबल मान प्राप्त करने के लिए विधि का उपयोग करने की आवश्यकता है ।

BigDecimal bd; // the value you get
double d = bd.doubleValue(); // The double you want

नमस्ते, मैं एक ही इस्तेमाल किया, लेकिन समस्या यह है कि दोनों anser अलग हैं मेरे दशमलव उत्पादन 13555261857.79 था और जब इसकी 1.355526185779E10 को दोगुना करने के लिए परिवर्तित किया गया .. मैं दशमलव को डबल करने के लिए एक ही आउटपुट कैसे प्राप्त
करूं

@ user13926345 - दोनों एक ही मूल्य हैं। बस पहला आउटपुट मूल्य का सामान्य प्रतिनिधित्व है और दूसरा वैज्ञानिक प्रतिनिधित्व है
सुदोहरूल

35

आप BigDecimalका doubleउपयोग करके परिवर्तित कर सकते हैं .doubleValue()। लेकिन मेरा विश्वास करो, अगर आप मुद्रा में हेरफेर करते हैं तो इसका उपयोग न करें। इसे हमेशा BigDecimalसीधे वस्तुओं पर किया जाना चाहिए । इन गणनाओं में सटीक नुकसान मुद्रा संबंधी गणनाओं में बड़ी समय की समस्याएं हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.