2012-12-30 30 views
22

के साथ मिलीसेकंड को सेकंड में कैसे परिवर्तित करें मैं मिलीसेकंड को सेकेंड में बदलना चाहता हूं (उदाहरण के लिए 1500ms से 1.5s, या 500ms से 0.5s) जितना संभव हो उतना सटीकता।परिशुद्धता

Double.parseDouble(500/1000 + "." + 500 % 1000); ऐसा करने का सबसे अच्छा तरीका नहीं है: मैं एक विभाजन ऑपरेशन से शेष प्राप्त करने का एक तरीका ढूंढ रहा हूं, इसलिए मैं बस शेष को जोड़ सकता हूं।

उत्तर

59

निश्चित रूप से आप सिर्फ जरूरत है:

double seconds = milliseconds/1000.0; 

मैन्युअल रूप से दो भागों को अलग से ऐसा करने के लिए कोई ज़रूरत नहीं है - तुम सिर्फ चल बिन्दु गणित, जरूरत है जो 1000.0 के उपयोग बलों (एक double शाब्दिक रूप में)। (मुझे लगता है कि आपका milliseconds मान कुछ रूप का पूर्णांक है।)

ध्यान दें कि double के साथ सामान्य रूप से, आप परिणाम का प्रतिनिधित्व करने में सक्षम नहीं हो सकते हैं। BigDecimal का उपयोग करने पर विचार करें यदि आप 0.1 सेकंड बिल्कुल के रूप में 100ms का प्रतिनिधित्व करना चाहते हैं। (यह देखते हुए कि यह एक भौतिक मात्रा है, और 100ms पहली जगह में सही नहीं होगा, एक double शायद उचित है, लेकिन ...)

+0

यदि आप 'int/1000.0' का उपयोग करते हैं तो आपको प्रतिनिधित्व त्रुटि दिखाई नहीं देगी यदि आप स्ट्रिंग में वापस कनवर्ट करते हैं, तो यह उस मार्जिन में होगा जो इसके लिए सुधार करता है। –

+0

धन्यवाद, कभी नहीं पता था कि यह इतना आसान था! –

+0

यह शैली का विषय है, लेकिन मैं व्यक्तिगत रूप से '1000D' को' 1000.0' पसंद करता हूं, क्योंकि यह इसे स्पष्ट करता है कि यह एक डबल अक्षर है, और अंत में '.0' नहीं है, जो वास्तव में मुझे देता है ओसीडी। – bcsb1001

5

क्यों नहीं आप बस

System.out.println(1500/1000.0); 
System.out.println(500/1000.0); 
+0

धन्यवाद, मैं इसे सबसे अच्छा जवाब के रूप में चुना होगा लेकिन जॉन थोड़ा और विस्तृत था –

1

की कोशिश करते हैं मुझे यह समस्या भी थी, किसी भी तरह से मेरे कोड ने सटीक मान प्रस्तुत नहीं किए थे, लेकिन संख्या को सेकंड में 0.0 तक गोल किया था (यदि मिलीसेकंड 1 सेकंड से कम था)। क्या मुझे डिवीजन वैल्यू में दशमलव जोड़ने में मदद मिली।

double time_seconds = time_milliseconds/1000.0; // add the decimal 
System.out.println(time_milliseconds);    // Now this should give you the right value.