2013-02-28 10 views
15

एक चर में फ्लोट करने के लिए भंडारित किया जाता है इस मूल्य: $10.00 और मैं इस 10.00रूबी - रूपांतरण स्ट्रिंग लौटाने 0.0

मैं फ्लोट करने के लिए इस मान को परिवर्तित करने के लिए कोशिश की है प्राप्त करने की आवश्यकता:

new_price = '%.2f' % (price.to_f) 

लेकिन मुझे बस 0.0 मिलता है।

इसके साथ क्या गलत है? मैं भी

price = price.strip 
price[0]="" 
new_price = '%.2f' % (price.to_f) 

की कोशिश की है लेकिन फिर भी यह मुझे मदद नहीं की ... जहां एक समस्या है?

धन्यवाद

उत्तर

22

आप को दूर करने के $ पहले की जरूरत है। इस तरह पूरी बात:

'%.2f' % '$10.00'.delete("$").to_f 

या

'%.2f' % '$10.00'[1..-1].to_f 

अगर आप घनत्व पसंद है और गैर डॉलर आ सकती है।

+0

आपके उत्तर के लिए धन्यवाद, लेकिन आउटपुट अभी भी '10.00' के बजाय' 10.0' है। – user984621

+0

नहीं करने के लिए मुझे '1.9.3-p392: 006> '% .2f'% '$ 10.00'.delete (" $ ") .to_f =>" 10.00 "' – froderik

+0

आप इसे कैसे कर रहे हो? – froderik

-1

की Froderick के जवाब देने के लिए पर जोड़ना: आप पहले $ हटाने की जरूरत

। इस तरह पूरी बात:

'%.2f' % '$10.00'.delete("$").to_f 

या

'%.2f' % '$10.00'[1..-1].to_f 

अगर आप घनत्व पसंद है और गैर डॉलर आ सकती है। आप

आप अपने उत्पादन स्ट्रिंग स्वरूपित करने के लिए आपके पास दो दशमलव स्थानों सुनिश्चित करने की जरूरत है साथ> उत्पादन सुनिश्चित करें कि आप दो दशमलव स्थानों पाने के लिए कोड फ़ॉर्मेट करना होगा।

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

पर अधिक देखने के लिए कोई विचार नहीं है लेकिन यह पहले ही हो चुका है .... :-) – froderik

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