gpt4 book ai didi

Haskell 将 Int 转换为 Float

转载 作者:行者123 更新时间:2023-12-02 02:19:32 25 4
gpt4 key购买 nike

我在使用其中一个新功能时遇到了一些问题,它是 fromIntegral 功能。

基本上我需要接受两个 Int 参数并返回数字的百分比,但是当我运行我的代码时,它一直给我这个错误:

代码:

percent :: Int -> Int -> Float
percent x y = 100 * ( a `div` b )
where a = fromIntegral x :: Float
b = fromIntegral y :: Float

错误:
No instance for (Integral Float)
arising from a use of `div'
Possible fix: add an instance declaration for (Integral Float)
In the second argument of `(*)', namely `(a `div` b)'
In the expression: 100 * (a `div` b)
In an equation for `percent':
percent x y
= 100 * (a `div` b)
where
a = fromIntegral x :: Float
b = fromIntegral y :: Float

我读了 98 年的 Haskell 前奏曲,它说有一个名为 fromInt 的函数,但它从未起作用,所以我不得不这样做,但它仍然不起作用。帮助!

最佳答案

查看div的类型:

div :: Integral a => a -> a -> a

您不能将输入转换为 Float然后使用 div .

使用 (/)反而:
(/) :: Fractional a => a -> a -> a

以下代码有效:
percent :: Int -> Int -> Float
percent x y = 100 * ( a / b )
where a = fromIntegral x :: Float
b = fromIntegral y :: Float

关于Haskell 将 Int 转换为 Float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com