我想在Haskell中使用有理数字类型而不是派系类型(或者在C中使用float/double类型)
我得到以下结果:
8/(3-8/3)=23.999...
8/(3-8/3)/=24
Run Code Online (Sandbox Code Playgroud)
我知道Data.Ratio.但是,它支持Data.Ratio上的(+)( - )(*)(/)操作:
1%3+3%3 == 4 % 3
8/(3-8%3) == 24 % 1
Run Code Online (Sandbox Code Playgroud)
我已经检查过Racket:
(= (/ 8 (- 3 (/ 8 3))) 24)
#t
Run Code Online (Sandbox Code Playgroud)
8/(3-8/3) == 24在Haskell中确保什么是正确的方法?
在链中的某处使用显式类型.它将强制使用正确的类型执行整个计算.
import Data.Ratio
main = do
print $ 8/(3-8/3) == 24
print $ 8/(3-8/3) == (24 :: Rational)
Run Code Online (Sandbox Code Playgroud)
打印
False
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |