gpt4 book ai didi

haskell - 如何从 Double 而不是 Haskell 中的科学记数法中获取十进制字符串?

转载 作者:行者123 更新时间:2023-12-04 17:17:05 25 4
gpt4 key购买 nike

我需要将要打印的数字列表除以 100,例如:

map (/100) [29, 3, 12]

产生:
[0.29,3.0e-2,0.12]

但是我需要:
[0.29,0.03,0.12]

我如何在 Haskell 中做到这一点?任何想法都非常感谢。

最佳答案

0.033.0e-2是相同的数字。在内部,GHC 使用 showFloat 打印它,这将导致当绝对值超出范围 0.1 和 9,999,999 时使用科学计数法。

因此,您必须自己打印这些值,例如使用 printf 来自 Text.Printf showFFloat 来自 Numeric :

import Numeric

showFullPrecision :: Double -> String
showFullPrecision x = showFFloat Nothing x ""

main = putStrLn (showFullPrecision 0.03)

根据您所需的输出,您需要编写更多函数。

关于haskell - 如何从 Double 而不是 Haskell 中的科学记数法中获取十进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006362/

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