You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置GHCi以十进制形式输出计算结果?

在GHCi中禁用科学计数法,以十进制打印浮点数

确实,科学计数法偶尔会让人误以为计算结果出了问题,尤其是看到e的时候,总忍不住要反应一下实际数值是多少。下面几种方法可以帮你在GHCi里切换到十进制打印模式:

1. 临时转换单个浮点数

如果你只是想查看某个特定值的十进制形式,可以导入Numeric模块,用showGFloat函数来转换:

-- 先导入模块
import Numeric

-- 转换并打印目标值
putStrLn $ showGFloat Nothing 2.1474027456e-2 ""

执行后会输出:0.021474027456,完全是十进制格式。

2. 全局设置GHCi默认打印格式

如果想让所有浮点数都默认用十进制打印,可以重新定义GHCi的print命令:

-- 导入必要模块
import Numeric

-- 重新定义print命令,让它默认用十进制输出浮点数
:def print \expr -> return $ "putStrLn $ showGFloat Nothing (" ++ expr ++ ") \"\""

设置完成后,你直接输入浮点数表达式,比如2.1474027456e-2,GHCi就会自动输出十进制的0.021474027456,不用再手动转换。

3. 永久生效的配置

要是不想每次启动GHCi都重复上面的设置,可以把配置写入~/.ghci文件(Windows系统是%APPDATA%\ghc\ghci.conf):

:set -XOverloadedStrings
import Numeric
:def print \expr -> return $ "putStrLn $ showGFloat Nothing (" ++ expr ++ ") \"\""

下次启动GHCi时,这些设置会自动加载,直接就能用十进制打印浮点数了。

需要注意的是,这种设置只会影响浮点数的显示,整数和其他类型的输出不会受影响,完全不用担心干扰其他计算的查看。

内容的提问来源于stack exchange,提问作者Ηλεκτρολόγος Μηχανικός

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:19:13