2011-11-11 4 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 

これは数学的にはよりエレガントな方法ですが、それは私の質問ではありません。 終了ステップは常に科学表記で印刷されます。

プレーン10進出力を取得するにはどうすればよいですか?私は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-scientific-notation) [C++ ostreams](http://stackoverflow.com/questions/2335657/prevent-scientific-notation-in-ostream-when-using-with-double)[Delphi](http://stackoverflow.com/questions/6077153)/how-to-disable-scientific-not-in-asstring-in-delphi) –

答えて

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 
関連する問題