我有一个类型为 Int -> Int -> Int -> Int
的函数。当我在函数中使用 div a b
作为变量的值时,如果 div a b
的返回值是 1/2 或任何东西都像。
这是正确的吗?如果 double 被强制转换为整数,Haskell 是否会像 java 中那样削减值?
最佳答案
div 1 2
不返回 0.5,然后将其转换为整数 0。它首先返回 0。 div
执行整数除法,因此总是返回一个整数(或其他整数类型,具体取决于您使用的类型)。不涉及 double 。
当您将 double 转换为整数时,舍入方法取决于您使用的方法。例如,floor
会将数字向下舍入,而 round
会舍入到最接近的整数。 Haskell 中没有隐式转换,因此任何转换都将通过函数发生。
关于haskell - Haskell 是否进行从 double 到整数的默认转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412431/