2011-11-11 53 views
16

我有一些項目,我想劃分到一些桶,這樣每個桶比最後一個分數大一些。如何獲得Haskell以科學記數法輸出數字?

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

相關用於其他語言:Haskell的](http://stackoverflow.com/questions/8098457/how-do-i-get-to-haskell-to-output-numbers-沒有在科學記數法)[Lua](http://stackoverflow.com/questions/1133639/how-can-i-print-a-huge-number-in-lua-without-using-scientific-notation) [C++ ostreams](http://stackoverflow.com/questions/2335657/prevent-scientific-notation-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 
相關問題