gpt4 book ai didi

haskell - 在 Haskell 中设置精度

转载 作者:行者123 更新时间:2023-12-02 21:19:35 26 4
gpt4 key购买 nike

我有一个代码接受输入 T,然后是 T 行。我想将精度设置为小数点后 12 位。如何提高 Haskell 的精度?

代码:

f i=(-1)**i/(2*i+1) 
g j=show$sum$map f[0..j-1]
p(_:l)=map(g.read)l
main=interact$unlines.p.lines

如果输入是:

1
10

然后输出是 0.7604599047323508,但我只想要 0.760459904732。

最佳答案

您可以使用 Text.Printf 中的 printf

printf "%.12f" 0.7604599047323508

printf 已重载,因此您需要指定返回类型,但您可以这样做:

showPrec :: Double -> String
showPrec = printf "%.12f"

然后你可以在g中替换show的使用:

g j = showPrec $ sum $ map f[0..j-1]

如果你指定类型,你可以直接在g中使用printf:

g :: Double -> String
g j = printf "%.12f" $ sum $ map f[0..j-1]

关于haskell - 在 Haskell 中设置精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com