2011-11-11 10 views
16

मेरे पास कुछ आइटम हैं जिन्हें मैं कई बाल्टी में विभाजित करना चाहता हूं, जैसे प्रत्येक बाल्टी आखिरी से कुछ अंश बड़ा है।मैं वैज्ञानिक संख्या में आउटपुट संख्याओं के लिए हैकेल कैसे प्राप्त करूं?

items = 500 
chunks = 5 
increment = 0.20 


{- find the proportions -} 
sizes = take chunks (iterate (+increment) 1)  
base = sum sizes/items  
buckets = map (base *) sizes 

main = print buckets 

मुझे यकीन है कि वहाँ यह करने के लिए एक गणितीय और अधिक सुरुचिपूर्ण तरीका है हूँ, लेकिन है कि मेरे सवाल नहीं है। अंतिम चरण हमेशा वैज्ञानिक नोटेशन में छाप रहा है।

मैं सादा दशमलव आउटपुट कैसे प्राप्त करूं? मैंने Numeric पैकेज को देखा है लेकिन मुझे कहीं भी तेज़ नहीं मिल रहा है।

+1

अन्य भाषाओं के लिए संबंधित: [हास्केल] (http://stackoverflow.com/questions/8098457/how-do-i-get-to-haskell-to-output-numbers- इन-इन-वैज्ञानिक-नोटेशन) [लुआ] (http://stackoverflow.com/questions/1133639/how-can-i-print-a-huge-number-in-lua-without-using- वैज्ञानिक- नोटेशन) [सी ++ ओस्ट्रीम] (http://stackoverflow.com/questions/2335657/prevent- वैज्ञानिक- नोटेशन-in-ostream-when-using-with-double) [डेल्फी] (http://stackoverflow.com/questions/6077153/कैसे करने वाली अक्षम वैज्ञानिक संकेतन में asstring में डेल्फी) –

उत्तर

9

printf आज़माएं। उदाहरण के लिए:

> import Text.Printf 
> printf "%d\n" (23::Int) 
23 
> printf "%s %s\n" "Hello" "World" 
Hello World 
> printf "%.2f\n" pi 
3.14 
12
> putStrLn $ Numeric.showFFloat Nothing 1e40 "" 
10000000000000000000000000000000000000000.0 
संबंधित मुद्दे

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