Haskell - 将整数转换为 double ,然后是字符串

标签 haskell type-conversion

我正在通过编写一个将美分价格转换为美元的程序来练习 Haskell。显然,这意味着我的 Int 需要变成 Double,但我希望我的最终输出是 String。我的代码:

首先,我定义了我的 Price类型:
type Price = Int
然后,我写了我的模块:

formatDollars :: Price -> String
formatDollars x = show (fromIntegral (x `div` 100))

我对 x 的测试输入是 188,这应该给我 1.88。

但我的输出总是 "1" .这让我觉得我的 fromIntegral 函数可能没有在我的代码中正确使用,就好像它在小数点后截断一样。由于我对 Haskell 还很陌生,我确信这是一个简单的错误;有人可以帮帮我吗?

最佳答案

188 `div` 100 == 1

您想转换为 Double在进行除法之前。 (然后进行实数除法,而不是整数除法。)
formatDollars x = show ((fromIntegral x) / 100)

关于Haskell - 将整数转换为 double ,然后是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52755214/

相关文章:

swift - 将字符串转换为 double 问题

arrays - Haskell 中的固定大小列表(即具有类似列表 API 的数组)

list - 列表中的 Haskell 列表

haskell - 无限自引用列表

haskell - Haskell中没有错误消息

typescript - 从联合类型中提取,其中鉴别器也是联合

haskell - 我该如何解决这种类型类歧义?

python - 将数据从 csv 文件转换为 numpy 数组问题

java - 输入是一个字符串数组,输出是一个ArrayList

java - 在java中将SUBSTRING转换为整数的最佳方法