2016-08-03 8 views
8

मैं यह पता लगाने की कैसे एक स्ट्रिंग/बाइनरी में एक नाव कन्वर्ट करने के लिए कोशिश कर रहा हूँ, लेकिन इसके रूप में आसान नहीं की तरह लगता है के रूप में यहअमृत - स्ट्रिंग

iex(1)> to_string(1200.00) 
"1.2e3" 

iex(2)> Float.to_string(1200.00) 
"1.2e3" 

लग रहा है हम की जरूरत है "1200.00" बाहर आने के लिए करने के लिए नाव कन्वर्ट ... बस नहीं प्रतिपादक अंकन

उत्तर

9
अपने USECASE बारे में अधिक जानकारी के बिना

में, यह आप अपने वांछित परिणाम दे देंगे:

iex(1)> Float.to_string(1200.00, decimals: 2) 
"1200.00" 

यह erlang के float_to_binary/2 उपयोग कर रहा है और deprec हो जाएगा अमृत ​​1.4 (https://github.com/elixir-lang/elixir/blob/v1.3.2/lib/elixir/lib/float.ex#L225) में पैदा:

def to_string(float, options) do 
    :erlang.float_to_binary(float, expand_compact(options)) 
end 
+1

इस कहीं भी दर्ज है? मैं देखता हूं [Float.to_string/1] (http://elixir-lang.org/docs/stable/elixir/Float.html#to_string/1)। –

+2

यह थोड़ा छिपा हुआ है और जल्द से जल्द बहिष्कृत किया गया है: https://github.com/elixir-lang/elixir/blob/v1.3.2/lib/elixir/lib/float.ex#L225 शायद इसके साथ चिंताओं के कारण फ्लोट में परिशुद्धता विरासत। इस लाइब्रेरी के उपयोग के आधार पर https://github.com/ericmj/decimal प्रासंगिक – splatte

+4

@splatte हो सकता है कि उस मामले में मैं कहूंगा कि आप अपने उत्तर को संपादित करना चाहेंगे, जिसमें एरलांग फ़ंक्शन शामिल है जो वर्तमान में कॉल करता है, जैसा कि यह है जिस तरह से इसे भविष्य में बुलाया जाना चाहिए: 'erlang.float_to_binary (1200.00, decimals: 2)'। –

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