2011-12-21 13 views
13

मैं करने के लिए find और convert दशमलव संकेतन के लिए एक csv फ़ाइल में सभी वैज्ञानिक संकेतन तार, चाहें उदा .:एक वैज्ञानिक नोटेशन स्ट्रिंग को दशमलव नोटेशन में कैसे परिवर्तित करें?

1.0e-05 to 0.00001 

मैं कैसे माणिक में ऐसा कर सकते हैं?

उत्तर

22

बस स्ट्रिंग रूपांतरण का उपयोग करें। फ्लोट करने के लिए आवश्यक जबरन स्वचालित रूप से किया जाएगा:

"%f" % "1.0e-05" 
=> "0.000010" 

# Which, behind the scenes is the same as: 
"%f" % "1.0e-05".to_f 
=> "0.000010" 

अधिक या कम सटीकता प्राप्त करने के लिए आवश्यक समायोजित करें। उदाहरण के लिए:

"%.5f" % "1.0e-05" 
=> "0.00001" 

यदि आप असली फैंसी प्राप्त करना चाहते हैं और अंत में अनावश्यक शून्य बंद करना चाहते हैं, तो यहां एक तरीका है। (उम्मीद है कि किसी को अधिक सुरुचिपूर्ण कुछ सुझाव देगा, मैं कुछ भी नहीं सोच सकता है):

("%.20f" % "1.0e-05").sub(/\.?0*$/, "") 
=> "0.00001" 
6

आप एक नंबर पर गणित किसी भी प्रकार का कर रही में रुचि रखते हैं और यह बहुत छोटा है:

"%f" % "1.0e-10" 
=> "0.000000" 

# not so good for various reasons 
("%f" % "1.0e-10") == ("%f" % "1.0e-8") 
=> true 

आप बिगडेसिमल का उपयोग कर सकते हैं:

BigDecimal.new "1.0e-10" 
=> #<BigDecimal:7ffdf6c38678,'0.1E-9',9(18)> 
संबंधित मुद्दे