2015-05-20 3 views
6

के पीछे पीछे शून्यों को हटाएं मेरे पास एक गतिशील रूप से जेनरेट की गई तालिका है जो मूल्य * qty गुणा करती है। कुछ कीमत आंशिक सेंट में हैं। उदाहरणरेल नंबर_to_currency दशमलव

के लिए अगर एक आइटम की कीमत 0.0375 मुझे लगता है कि प्रदर्शित कर सकते हैं

number_to_currency(0.0375,:precision => 4) 
=> $0.0375 

रूप में, लेकिन मात्रा जहां कीमत एक मानक 2 दशमलव संख्या मैं

number_to_currency(33.95,:precision => 4) 
    => $39.9500 

मिलता है पर मेरी तालिका में है मुझे दशमलव मान के पीछे वाले शून्यों को ट्रिम करने के लिए एक तरीका चाहिए। ध्यान रखें कि आउटपुट मॉडल में है। प्रत्येक ब्लॉक इसलिए मुझे अनिश्चितता है कि मैं परिशुद्धता पैरामीटर को सशर्त रूप से संशोधित कर सकता हूं।

उत्तर

12

strip_insignificant_zeros विकल्प निर्दिष्ट करने के लिए प्रयास करें:

number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true) 

यह दशमलव विभाजक के बाद शून्य निकाल देना चाहिए। Here इस विकल्प का विवरण है।

+0

धन्यवाद! यह उत्तर मेरी आवश्यकताओं को पूरा करता है क्योंकि number_to_currency एक लूप के अंदर है। – ctilley79

0
number_to_currency(33.95,:precision => 2) 
0

के बाद से number_to_currency एक स्ट्रिंग देता है, आप .remove(/0+$/) उपयोग कर सकते हैं तो अवांछित शून्य दूर करने के लिए:

number_to_currency(33.95,:precision => 4).remove(/0+$/) 
0

number_to_currency से पहले round उपयोग करके देखें:

number_to_currency(33.95.round(4)) # $33.95 
number_to_currency(0.0375.round(4)) # $0.0375 
संबंधित मुद्दे