2012-09-12 15 views
48

मैं एक स्ट्रिंग उन्हें दशमलव की एक निश्चित राशि के साथ सहित नाव चर युक्त फ़ॉर्मेट करने के लिए चाहते हैं, और मैं स्वरूपण वाक्य रचना इस तरह से यह करने के लिए करना चाहते हैं:# {variable} का उपयोग कर रूबी में फ़्लोट के साथ स्ट्रिंग को कैसे प्रारूपित करें?

amount = Math::PI 
puts "Current amount: #{amount}" 

और मैं Current amount: 3.14 प्राप्त करने के लिए करना चाहते हैं।

मैं जानता हूँ कि मैं

amount = Math::PI 
puts "Current amount %.2f" % [amount] 

साथ यह कर सकते हैं लेकिन अगर यह #{} तरह से यह करने के लिए संभव है मैं पूछ रहा हूँ।

+0

वहाँ किसी भी प्रोग्रामिंग समस्या को हल करने अनंत तरीके हैं, लेकिन कुछ एक बहुत दूसरों से बेहतर हैं। आप इस नौकरी के लिए सही उपकरण का उपयोग क्यों नहीं करना चाहते हैं? –

उत्तर

40

उपयोग round:

"Current amount: #{amount.round(2)}" 
+0

कोई रेल आवश्यक नहीं: http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round –

+0

आह, ठीक है। मैंने अपने आईआरबी में कोड की कोशिश की। काम नहीं किया। लेकिन मेरे सिस्टम का रूबी संस्करण 1.8.7 है। – Bjoernsen

+18

इस बारे में निश्चित नहीं है - यदि आप संख्या 11.3 है और आप 11.30 चाहते हैं तो आपको सही प्रारूप नहीं मिलता है ... – xmjw

32

आप ऐसा कर सकते हैं, लेकिन मैं String#% संस्करण पसंद करते हैं:

puts "Current amount: #{format("%.2f", amount)}" 

@Bjoernsen के रूप में बताया, round सबसे सरल तरीका है और यह भी साथ काम करता है मानक रूबी (1.9), न केवल रेल:

http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round

+0

आप स्ट्रिंग संस्करण क्यों पसंद करते हैं? – Bjoernsen

+0

क्योंकि मैं सरल अभिव्यक्तियों के लिए इंटरपोलेशन आरक्षित करने का प्रयास करता हूं। –

5

हाँ, यह संभव है:

puts "Current amount: #{sprintf('%.2f', amount)}" 
41

आप "#{'%.2f' % var}" उपयोग कर सकते हैं:

irb(main):048:0> num = 3.1415 
=> 3.1415 
irb(main):049:0> "Pi is: #{'%.2f' % num}" 
=> "Pi is: 3.14" 
+2

यह स्वीकार्य उत्तर होना चाहिए। विभिन्न राउंडिंग से सावधान रहें – Fatih

+3

: '' '"% .2f "% 1.345 =>" 1.34 "' '' '' ' "% .2f "% 1.346 =>" 1.35 "' '' '' ' "% .2f"% 1.345.round (2) => "1.35" '' ' ' ''%% .2f "% 1.346.round (2) =>" 1.35 "' ' –

+0

महान होगा दस्तावेज के लिए एक लिंक देखने के लिए – yegor256

संबंधित मुद्दे