小编M. *_*osi的帖子

怀疑ghci简单的算术

我开始使用Miran Lipovaca着名的书来学习Haskell ,但是在与格拉斯哥Haskell编译器的交互式shell(ghci)的第一次交互中,我的好奇心阻止了我.

特别是,我开始通过划分两个整数来获得浮点十进制数,基本上看看Haskell如何自动管理它们并了解更多关于它的自动转换.

?> 1/3
0.3333333333333333
?> 4/3
1.3333333333333333
?> 3424/3
1141.3333333333333
Run Code Online (Sandbox Code Playgroud)

这些告诉我Haskell总共使用了17位数字(或18个字符,包括点?),无论它们是否重要.然而,这些也发生了

?> 14/3
4.666666666666667
?> 34/3
11.333333333333334
?> 44/3
14.666666666666666
Run Code Online (Sandbox Code Playgroud)

为什么第一个缩短一位数?为什么其他人错误地四舍五入?

可能这是一个愚蠢的问题,但我想知道这些基本事情的答案,我可以从更深入地理解语言(或翻译?)的工作方式开始,通过了解更多内容.

floating-point haskell decimal rounding

0
推荐指数
1
解决办法
94
查看次数

标签 统计

decimal ×1

floating-point ×1

haskell ×1

rounding ×1