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

これを行うには数学的にもっとエレガントな方法があると確信していますが、それは私の質問ではありません。最終ステップは常に科学的記数法で印刷することです。

プレーンな10進数出力を取得するにはどうすればよいですか?Numericパッケージを見てきましたが、どこにも速くなりません。

4

2 に答える 2

13
> putStrLn $ Numeric.showFFloat Nothing 1e40 ""
10000000000000000000000000000000000000000.0
于 2011-11-11T20:45:42.080 に答える
11

printfを試してください。例えば:

> import Text.Printf
> printf "%d\n" (23::Int)
23
> printf "%s %s\n" "Hello" "World"
Hello World
> printf "%.2f\n" pi
3.14
于 2011-11-11T18:44:49.457 に答える