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包,但我没有快速获得任何进展。

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 回答