Haskell程序将双精度类型变量转换为整数


在 Haskell 中,我们将使用用户定义函数 doubleToInt 以及 floor、round 和 ceiling 函数将双精度类型变量转换为整数。在第一个示例中,我们将使用 (doubleToInt d = floor d) 函数,在第二个示例中,我们将使用 (doubleToInt d = round d) 函数。在第三个示例中,我们将使用 (doubleToInt d = ceiling d) 函数。

算法

  • 步骤 1 − 使用 floor 函数定义 doubleToInt 函数,如下所示:doubleToInt d = floor d。

  • 步骤 2 − 程序执行将从 main 函数开始。main() 函数控制整个程序。它被写成 main = do。

  • 步骤 3 − 初始化名为“d”的变量。它将保存要转换为相应整数类型的双精度值。

  • 步骤 4 − 调用 doubleToInt 函数并将 d 传递给它。

  • 步骤 5 − 函数调用后,使用 'putStrLn' 语句将结果整数类型值打印到控制台。

示例 1

在此示例中,定义了一个函数 doubleToInt,它接收一个 Double 类型的 d 值并返回一个 Int 值,使用 floor 函数将其向下舍入到最接近的整数。然后它定义了一个 main 函数,该函数使用一个 Double 值调用 doubleToInt 并打印出原始 Double 值和结果 Int 值。

doubleToInt :: Double -> Int
doubleToInt d = floor d

main :: IO ()
main = do
   let d = 3.14159
       i = doubleToInt d
   putStrLn $ "The value of d is " ++ show d
   putStrLn $ "The value of i is " ++ show i

输出

The value of d is 3.14159
The value of i is 3

示例 2

在此示例中,round 函数将 Double 值舍入到最接近的整数,并将其作为 Integral 类型返回,该类型可以直接转换为 Int。

doubleToInt :: Double -> Int
doubleToInt d = round d

main :: IO ()
main = do
   let d = 3.14159
       i = doubleToInt d
   putStrLn $ "The value of d is " ++ show d
   putStrLn $ "The value of i is " ++ show i

输出

The value of d is 3.14159
The value of i is 3

示例 3

在此示例中,ceiling 函数将 Double 值向上舍入到最接近的整数,并将其作为 Integral 类型返回,该类型可以直接转换为 Int。

doubleToInt :: Double -> Int
doubleToInt d = ceiling d

main :: IO ()
main = do
   let d = 3.14159
       i = doubleToInt d
   putStrLn $ "The value of d is " ++ show d
   putStrLn $ "The value of i is " ++ show i

输出

The value of d is 3.14159
The value of i is 4

结论

双精度到整数的转换是将 Double 数据类型转换为 Int 数据类型的过程。Double 是一种浮点数据类型,可以高精度地保存小数,而 Int 是一种整数数据类型,只能保存整数。在 Haskell 中,使用用户定义的 doubleToInt 函数以及 floor、round 和 ceiling 函数将 Int 变量转换为双精度类型。

更新于: 2023年4月20日

622 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告